INF3110/4110
Obligatorisk oppgave 1
Innleveringsfrist onsdag 17/9/2003 kl. 1400
Leveres per e-post til gruppel?rer.
(Gruppe x sender til inf3110-x@ifi.uio.no)
--------------------------------------------------
1. Skriv en ML-funksjon
fun max3(x, y, z):int = ...
som returnerer det st?rste av de tre argumentene.
For eksempel skal max3(4,6,2) gi 6.
2. Skriv en ML-funksjon
fun antall(l:int list):int = ...
som teller antall elementer i listen l.
For eksempel skal antall([1,3,5,7]) gi 4.
3. Skriv en ML-funksjon
fun tell(l:int list,n:int):int = ...
som returnerer antall elementer i listen l som er st?rre enn n.
For eksempel skal tell([3,9,1,~8,4,6],4) v?re lik 2.
4. Skriv en ML-funksjon
fun plukk(l:int list, n:int):int list = ...
som plukker ut de elementene i listen l som er st?rre enn n.
For eksempel skal plukk([3,9,1,~8,4,6],4) gi [9,6].
5. Skriv en ML-funksjon
fun korrekt(l: int list, n: int) = ...
som sjekker hvorvidt antall(plukk(l,n)) er lik tell(l,n).
Hvis funksjonene over er korrekte, s? skal denne alltid returnere
true.
6. Skriv en ML-funksjon
fun ekspander(x: 'a, n: int): 'a list = ...
som returnerer en liste med n forekomster av x. For eksempel skal
ekspander("test", 3) gi ["test","test","test"].
7. Skriv en ML-funksjon
dupliser (l: 'a list, n: int) : 'a list = ...
som returnerer en liste hvor hvert element fra l forekommer n
ganger. For eksempel skal dupliser([1,2,3],4) gi
[1,1,1,1,2,2,2,2,3,3,3,3] og dupliser(["hipp", "hurra"], 3) gi
["hipp","hipp","hipp","hurra","hurra","hurra"].