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

Deklaratív programozás

1. SML kis házi feladat

2001. november 19.

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

A programot tömörítve, elektronikus levélben kell beküldeni. A beküldéshez egy bash szkriptet kell használni. A szkriptet futtatni a

 bash dpkhfbe.01a
paranccsal lehet (feltéve, hogy ezen a néven mentettük el).

Figyelem! Az ural2 szerveren a /usr/local/bin könyvtárban található a bash program.

A szkript elinduláskor elmagyarázza a teendőket (mi legyen az adott könyvtárban, milyen néven stb.). Mielőtt valaki hibára panaszkodna, győződjön meg róla, hogy a hiba az ural2.hszk.bme.hu szerveren is reprodukálható.

A programok készülhetnek MS DOS vagy MS Windows alatt is, de Unix (linux) operációs rendszer alatt is működniük kell.

A feladat

Írjon lathatoak néven olyan SML-függvényt, amely az argumentumaként kapott egész számokból álló, rendezetlen listából kigyűjti azokat az elemeket, amelyek nagyobbak az őket megelőzőknél, és ezen elemeket (a sorrendjüket megőrizve) egy listában visszaadja.

A segédfüggvényeket feltétlenül lássa el fejkommenttel! Törekedjék arra, hogy a megoldás hatékony legyen!

(* lathatoak xs = az xs lista azon elemei, amelyek nagyobbak az előttük állóknál
   lathatoak : int list -> int list
*)

Példák

- lathatoak [];
> val it = [] : int list

- lathatoak [1,2,3];
> val it = [1,2,3] : int list

- lathatoak [3,2,1];
> val it = [3,2,1] : int list

- lathatoak [3,1,4,2];
> val it = [3,4] : int list

Egyéb követelmények és tudnivalók

Ez az első SML kis házi feladat, ezért khf-ml1.sml néven kell beküldeni a megoldást. A beadási határidő 2001. november 30. 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 max. 100 ponton felül).