BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak |
Nappali tagozat
2005/2006. tanév, tavaszi félév
|
A kis házi feladat beadása nem kötelező.
exception MinF; datatype 'a F = A of 'a F list | B of 'a | CÍrjon olyan SML-függvényt
minF
néven,
amely egy 'a F
típusú adatstruktúra 'a
típusú elemei közül a min
függvény szerinti legkisebbet adja
eredményül, vagy MinF
néven kivételt
jelez, ha nincs az 'a F
típusú
adatstruktúrának 'a
típusú eleme. A min
függvényt paraméterként adjuk át a minF
függvénynek.
(* minF : ('a * 'a -> 'a) -> 'a F -> 'a minF min f = az f 'a típusú elemei közül a min szerinti legkisebb, vagy a MinF kivétel, ha f-nek nincs 'a típusú eleme *)Segédfüggvényeket definiálhat. A jobbrekurzív függvényekből generált számítási folyamatok kevesebb tárterületet használnak, mint a nemjobbrekurzív függvényekből generáltak, ezért ajánljuk, hogy jobbrekurzív függvényeket írjon, ám ez nem kötelező, a pontozásba nem számít bele.
(minF Int.min C handle MinF => 999) = 999; minF Int.min (B 3) = 3; (minF Int.min (A[]) handle MinF => 0) = 0; (minF Int.min (A[A[],C,A[],A[],C]) handle MinF => ~999) = ~999; minF Real.min (A[B 5.4,A[],C,B ~13.6,B 7.7]) = ~13.6; minF Int.min (A[B 5,A[B ~5,B 765,B ~875],A[],A[B 7,A[],B 76,C]]) = ~875; minF (fn (x,y) => chr(Int.min(ord x, ord y))) (A[B#"c",C,A[],B#"k",B#"i"]) = #"c";
khf-ml3.sml
néven kell beküldeni a
megoldást. A névben meg kell különböztetni a kis- és nagybetűket.
A beadási határidő 2006. május 26., péntek 24:00.
A vizsgaosztályzat megállapításakor a határidőre beadott, helyesen megoldott kis házi feladatért plusz 1 pont jár.