keskiviikko 11. helmikuuta 2009

Demo 4 - kommentit

Neljännen, ja tähän asti vähiten suosituimman, demokerran tehtävät löytyvät osoitteesta http://users.jyu.fi/~antkaij/opetus/okp/2009/demot/4.html . Tehtävät olivat haastavia erityisesti mikäli lambda-laskento oli vielä hieman hakusessa. Itse sain tehtyä ensimmäinen tehtävän, josta sain jopa osan oikein.

Tehtävät olivat varmasti helppoja jos tiesi mitä on tekemässä. Ehkä suurin ongelma näin lambda-noobin kannalta on se, että en ole yksinkertaisesti nähnyt tarpeeksi lambda-lausekkeita. Mielestäni koodia tulisi lukea, kuten kirjallisuutta ikään (Milloin yliopistolle tulee tarjolle koodin lukukurssi?). Tällä tavoin saattaa oppia erilaisia tapoja ratkaista erinäisiä ongelmia ja samalla saattaa oppia erottamaan hyvän koodin huonosta. Tiedä sitten voiko "huonoa" lambda-koodia edes kirjoittaa, kunhan se toimii oikein?

Demokerran lopulla käytiin läpi pieni bonustehtävä. Ajatuksena oli luoda binäärilaskuri (0 -> 10 -> 11 -> 100 -> 101, ...) käyttäen lambda-laskentoa. Laskurille vietiin binäärinen arvo listana ja se palautti sitä seuraavan arvon listana kuitenkin siten, että siihen oli lisätty yksi (siis kymmenjärjestelmässä, ei concat-operaationa).

Sinänsä tehtävän formulointi algoritmiksi on varsin helppoa. Haastavuus piilikin algoritmin muuttamisessa lambda-muotoon, mikä loppujen lopuksi osoittautui melko yksinkertaiseksi.

1 kommentti:

  1. Lambdalaskentoon liittyvät tehtävät olisivat olleet ehkä aavistuksen helpompia jos olisi älynnyt käyttää jotain oikeaa ohjelmointikieltä testailuun.

    VastaaPoista