Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted by wj ( 17 years ago )
type kodArt = string;
type nazwaArt = string;
type cena     = int;

type rejestr = (kodArt*(nazwaArt*cena)) list;

val Rejestr = [ ("a1", ("ser bialy", 3)),
				("a2", ("szprotki",  2)),
				("a3", ("sok",       4))
										];

type sztukiA = int; (*liczba zakupionych sztuk danego artykułu*)
type pozArt = sztukiA*kodArt; (*pozycja artykułu na liście zakupów*)
type zakupy = pozArt list; (*lista zakupow*)

val zakupy = [(4,"a2"),(1,"a1")];

type infoArt = sztukiA*nazwaArt*cena; (*informacja o artykule w racunku, gdzie cena jest kosztem łącznym*)
type infoLista = infoArt list; (*lista z informacjami o artykułach*)
type rachunek = infoLista*cena; (*lista j.w. i sumaryczny koszt zakupow*)


(*szukajArt:kodArt*rejestr->nazwaArt*cena;*)

exception BLEDNY_KOD_ARTYKULU

fun szukajArt(kA, (kA', naz_cen_A)::rej) = (*nazwa, cena*)
		if kA=kA' then naz_cen_A
			else szukajArt (kA,rej)
	| szukajArt _ = raise BLEDNY_KOD_ARTYKULU;

fun utworzRachunek([], _) = ([],0) (*lista artykulow, suma*)
  | utworzRachunek((sztA,kA)::zak, rej) = 
		let
			val (nazA,cenA) = szukajArt(kA,rej)
			val koszA = sztA*cenA
			val (Rach, suma) = utworzRachunek(zak,rej)
		in
			((sztA,nazA,kosztA)::Rach, kosztA + suma)
	end;

utworzRachunek([2,"a22")],Rejestr);

 

Revise this Paste

Your Name: Code Language: