Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Aloitusluento TIES341 Funktio-ohjelmointi 2 Kevät 2006.

Samankaltaiset esitykset


Esitys aiheesta: "Aloitusluento TIES341 Funktio-ohjelmointi 2 Kevät 2006."— Esityksen transkriptio:

1 Aloitusluento TIES341 Funktio-ohjelmointi 2 Kevät 2006

2 Aikataulu ● 15-18 luentoa ti klo 14, to klo 10 – varaa perua tarvittaessa luentoja ● 8 demokertaa 17.1. alkaen ti klo 16 – demotehtävät julki viimeistään edellisenä perjantaina ● Lähiopetusta yhteensä n. 50 tuntia ● “Kotitöitä” n. 30 tuntia (n. 4 h / demokerta) – keskimääräisen opiskelijan keskimääräinen työpanos ● Tenttejä 10.3., 21.4., 12.5. ● Suoritus: tentti tai harjoitustyö – demoista hyvityspisteitä

3 Sisällöstä ● Peruskurssilla perusasioita – selkeä ajatus siitä, mitkä ovat perusasioita – toisaalta perusasiat ovat keskenään niin naimisissa, ettei niistä saa kunnollista lineaarista esitystä – tarkoituksella jätetty pois peruskäsitteitä, jotka sotkisivat liikaa ekalla kurssilla ● Jatkokurssilla jatketaan – täydennetään perusasiat – tarkastellaan idiomeja – katsastetaan teoriaa, ja ehkä vähän lisää pellin alle – aihevalinta vähemmän ohjelmallista kuin peruskurssilla

4 Kirjallisuudesta ● Osa asiasta löytyy myös 1-kurssilla mainostetuista kirjoista, osa ei ● Osa on tutkimustietoa, josta ei ole vielä oppikirjoja – koetan muistaa mainita lähteeni, kun niitä käytän ● Tällä kurssilla toivottavasti päästään käsiksi tutkimuksen kärkeen, joten kaikkiin kurssilla esiin tuleviin kysymyksiin ei kukaan vielä tiedä vastausta! ● Osa kurssilla esiin tulevasta tiedosta on “hiljaista tietoa”, jota ei ole kirjallisuudessa käsitelty lainkaan

5 Parikeskustelu 1 f :: [String] -> String f xs = “[“ ++ g xs ++ “]” where g [] = “” g [x] = x g (x:xs) = g xs ++ “, ” ++ x Ylläoleva on tehoton, O(n²). a) Miksi? b) Keksikää useampi tapa tehostaa ylläolevaa O(n):ksi

6 Parikeskustelu 2 ● Miksi Haskellissa tarvitaan erottelu “puhtaisiin” arvoihin ja komentoihin? – on olemassa ainakin periaatteellinen syy ja käytännöllinen syy ● Eli siis: miksi getLine :: IO String eikä getLine :: String ? ● Löydättekö mitään (muuta) tapaa ratkaista nämä ongelmat kuin komentotyyppi IO?


Lataa ppt "Aloitusluento TIES341 Funktio-ohjelmointi 2 Kevät 2006."

Samankaltaiset esitykset


Iklan oleh Google