TIEA341 Funktio-ohjelmointi 1 Syksy 2005 Kertausta TIEA341 Funktio-ohjelmointi 1 Syksy 2005
Oleellista tällä kurssilla... eivät ole käsitteet (käsite on väline, ei itseisarvo)
Oleellista tällä kurssilla... on ajattelutapa (“metakognitio”)
ohjelmointia voi ajatella toisinkin Tällä kurssilla ... on puhuttu Haskellista ... on esitelty käsitteitä ... toivottavasti on myös tarttunut seuraava ajatus: ohjelmointia voi ajatella toisinkin
Ohjelmointia voi ajatella toisinkin tietokoneohjelma on laskutehtävä
Ohjelmointia voi ajatella toisinkin sijoituslause ja silmukka eivät ole kaiken perusta (välttämättä)
Mutta kuitenkin: keskeiset käsitteet Koostimet ja case Rekursio Funktionaalit Graafinsievennys laiska laskenta Solmun solmiminen Korekursio eli äärettömät tietorakenteet tuottaja, suodatin ja kuluttaja
Tentti 31.10.2003, kysymys 2 Laske seuraavat lausekkeet normaali- muotoonsa matemaatikon tarkkuudella: a) map (\x -> x-1) (3:2:1:undefined) b) take 3 fib Tarvittavat määrittelyt: fib = 1 : 1 : map (\(x,y) -> x+y) (zip fib (tail fib) zip ... map ... tail ...
Tentti 31.10.2003, kysymys 3 a Määrittele funktio crossProduct :: [a] -> [b] -> [(a,b)] joka tuottaa listan kaikista niistä pareista, jotka voidaan muodostaa niin, että parin vasen alkio on ensimmäisen parametrin alkio ja parin oikea alkio on toisen parametrin alkio.
Kysymys yleisölle Mitä on funktio-ohjelmointi?