BME Villamosmérnöki és Informatikai Kar
Műszaki informatika szak
Nappali tagozat
2004/2005. tanév, őszi félév

Deklaratív programozás

2. SML kis házi feladat

2004. november 2.

A kis házi feladat beadása nem kötelező.

A feladat

Nevezzünk n meredekségű emelkedőnek egy balról jobbra haladva n-esével növekvő, folytonos, legalább kételemű (számtani) sorozatot.

Írjon olyan SML-függvényt emelkedo néven, amelynek

  1. az első argumentuma egy egészekből álló ls lista,
  2. a második argumentuma egy n meredekség,
  3. az eredménye az ls listában található azon egészek listáinak listája, amelyek n meredekségű emelkedőkhöz tartoznak.
A feladat megoldásához segédfüggvényt definiálhat, ha ír hozzá fejkommentet!

Az emelkedo függvény fejkommentje:

(* emelkedo : int list * int -> int list list
   emelkedo (ls,n) = az ls lista n meredekségű emelkedőihez tartozó elemekből
                     álló, az eredeti sorrendet megőrző listák listája
*)

Példák

emelkedo([2,3,4,7], 2) = []
emelkedo([3,3,5,7], 2) = [[3,5,7]]
emelkedo([1,4,7,7,3,6], 4) = []
emelkedo([1,4,7,7,3,6], 3) = [[1,4,7],[3,6]]
emelkedo([6,5,8,11,2,5,8,7], 3) = [[5,8,11],[2,5,8]]

Beadás, tudnivalók

A programot az Elektronikus Tanársegéd segítségével a Weben keresztül lehet beadni, a HF beadás menüpont alatt. Ez a második SML kis házi feladat, ezért khf-ml2.sml néven kell beküldeni a megoldást. A névben meg kell különböztetni a kis- és nagybetűket.

A programok készülhetnek MS Windows alatt, de Linux operációs rendszer alatt is működniük kell. A beadási határidő 2004. november 15. hétfő 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 (a 100 pontból).