Viikko 5 - Syventyminen

Johdanto

Tähän asti kurssi on ollut ohjattua haskelliin syntaksiin ja perusajatuksiin tutustumista. Tämän viikon tehtävänä on pyrkiä soveltamaan hankittuja taitoja käytäntöön. Vaikka Haskell ohjelmoinnin perusajatukset ovat selvillä, niin käytännön ongelmanratkaisu uudella kielellä voi olla haastavaa.

Entinen koodi

Valitse edellisiltä kursseilta tai ohjelmointiharrastuksistasi sinua miellyttävä javalla, pythonilla tai c:llä kirjoitettu ohjelma tai aliohjelma, jonka kirjoittamiseen epäilet kuluneen enintään noin kymmenen tuntia tai pari työpäivää. (Jos et ole kirjoittanut mitään ohjelmaa ennen tätä, valitse sopivan kokoinen aliohjelma ohjelmointi 2 -kurssin esimerkeistä)

  1. Miten ohjelman rakennetta ja jaottelua tulisi muuttaa, että sen kirjoittaminen haskellilla olisi mahdollista?
  2. Millaisia konstruktioita käyttäisit lisäämään uudelleenkäytettävyyttä ja modulaarisuutta?
  3. Millaisia määrityksiä tekisit lisätäksesi koodin turvallisuutta?
  4. Toteuta ohjelmasi haskellilla edellisten kysymysten ja opitun asian valossa.

Uusi koodi

Analysoi haskell-versiota ja sitä miten se poikkeaa alkuperäisestä ohjelmastasi:

  1. Onko ohjelma modulaarisempi? Miksi? Miksi ei?
  2. Epäiletkö uuden ohjelman olevan helpommin uudelleen käytettävä
  3. Kumpi ratkaisuista on selvempi? Miksi?
  4. Onko uusi ratkaisusi riittävän suorituskykyinen?
  5. Mitä muuta huomionarvoista havaitsit?

(Vastaus tulee muotoilla noin sivun mittaiseksi esseeksi)

blog comments powered by Disqus