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"].