Scheme-harjoituskurssi
Tehtävänanto
- Tee funktio, joka ottaa suomenkielisen merkkijonon ja palauttaa uuden
merkkijonon, joka on muuten sama kuin edellinen, mutta siihen on
lisätty viivat sanansisäisille tavurajoille.
Esimerkiksi (tavuta helppo hymyillä
) palauttaa help-po
hy-myil-lä
.
- Tee risti ja nolla -pelin toteutus, jossa laudan tilaa pidetään
matriisissa (taulukoiden pohjalta tehdyt matriisitoteutukset
esimerkeissä). Peli kysyy siirtoja vuorotellen
kummiltakin pelaajilta, näyttää laudan aina siirron jälkeen ja
ilmoittaa, kun jompikumpi voittaa. Esimerkeissä on myös
funktiomäärittely, jolla voi lukea yhden rivin, read-line.
(Schemen ainoa varsinainen syötteenlukuprimitiivi on
read-char…)
Toista tehtävää ei ole aivan pakko tehdä, jos jo ensimmäinen aiheuttaa
kohtuuttomasti vaivaa.
Kurssin omaa materiaalia
- Kurssin kysymyksiä ja
vastauksia -sivu. Edellyttää teiltä kysymyksiä saadakseen
substanssia.
- oppimateriaalin omaista
- esimerkkikoodia
- Tunnilla tehdyt esimerkkimäärittelyt: 1,
2.
- Pienen levytehdas-ohjelmointikielen
toteutus. Ei tarvitse ymmärtää, mutta voi selailla, jos haluaa
nähdä, miltä scheme-ohjelma voi näyttää. Ainakin funktiot
plate-display, state-step! ja state-display lienevät
katsomisen arvoisia.
- Hyvin perinteistä symbolimanipulaatiota:
unifikaatio. Esimerkiksi (unify '(?x
(foo bar)) '((dah did) (foo ?y))) tuottaa tulokseksi että ?x
on (dah did) ja ?y on bar.
- XML-käsittelyä ja sen infrastruktuuria:
xmlparsen ja xmlgen:n määrittelyt on tehty siten, että
(stream->xexpr (string->stream …)) ja
(xexpr->string …) ovat jotakuinkin toistensa
vastaoperaatioita.
Ulkopuolista materiaalia
- http://www.schemers.org/
- Tietoa ja resursseja kaikille scheme-harrastajille. Sisältää
linkit lukuisiin muihin hyödyllisiin paikkoihin ja hostaa R5RS:a
sekä SRFI:eita.
- R5RS
- Revised^5 Report on algorithmic language Scheme. Ehdottomasti
pakko käyttää, jotta saa mitään aikaan. Selkeä, mutta hyvin
virallinen. Aloittelijalle tai kiireiselle ehkä eniten on
hyötyä luvuista 4 (expressions) ja 6 (standard procedures).
- Scheme-johdatus
- Melko selkeä, perustavanlaatuinen muttei kovin perinpohjainen
johdatus. Kannattaa katsoa ainakin osiot let-rakenteesta ja
rekursiosta, koska niistä on paljon hyötyä.
- http://www.htdp.org/
- How To Design Programs: perusteellinen oppikirja Scheme-kieleen.
Paljon lukemista, mutta opetusmielessä erittäin hyvä.
- http://www.plt-scheme.org/
- Täältä löytyy DrSchemen dokumentaatio.
- http://www.scsh.net/
- Täältä löytyy scsh:n, skriptausorientoituneen Schemen,
dokumentaatio. scsh on erittäin hyvä väline, jos haluaa
tehdä skriptejä Unix-ympäristöön tai testata ohjelmiensa
standardinmukaisuutta (R5RS).