Tänään oli taas pari oppituntia Logon merkeissä. Viisivuotiaalla oli uusi sotku-kehrä-vipperä-tunti, mutta lapsi ei osannut kovin omatoimisesti ehdottaa kokeiltavia ohjelmanpätkiä, joten se ei ollut kovin palkitsevaa. Sen sijaan hän halusi kokeilla ihan omatoimisesti piirtämistä, ja sai aikaan:
oi 70 et 400 oi 110
Sitten hän kysyi, miten saisi yhdistetyksi "viivan päät" (kilpikonna oli wrapannut toiselle puolelle näyttöä). Sattumoisin siihen on komento, home. Hän oli tästä kovin innoissaan.
Kymmenvuotiaalle opetin ensimmäistä kertaa parametristen komentojen tekemistä. Selitin, että tarkoitus on pystyä määrittämään komentoja, joille voi antaa lisäohjeita samaan tapaan kuin et- ja oi-komennoille kerrotaan, kuinka paljon edetään tai kuinka paljon käännytään.
Lähdimme vanhasta ohjelmasta, joka piirtää Poké-pallon. Jotta pääsisimme muokkaamaan sitä, se piti siirtää scp:llä lapsen omalle läppärille ja asentaa ucblogo. Olin hyvin tyytyväinen, että tämä tuli käydyksi. Lisäksi piti huolehtia, että ympäristömuuttuja EDITOR on vi, koska logo ei osaa vain olettaa jotain editoria jos kyseistä muuttujaa ei ole asetettu.
Teimme ensin puoliympyrästä parametrisoidun version. (Tähän tarvitsi vi:n komentoja A, j, w ja s, sekä tietenkin ZZ.)
to puoli :koko toista 180 [va 1 et :koko] end
Selitin, että kaksoispisteellä alkavat sanat edustavat mitä vain lukua, joka päätetään sitten, kun komentoa kutsutaan. Paljon nyökyttelyä.
Korjasimme poke_ball-ohjelman sellaiseksi, että se osaa käyttää uutta puoli-komentoa (antaa siis sille parametrin). Samoin poke_ball-ohjelmasta tehtiin parametrisoitu versio, jossa kaikki pituudet oli kerrottu :koko-muuttujalla. pieni_puoli-ohjelma korvattiin kutsulla puoli :koko/6.
Tämä tunti oli loistava menestys, ja vi:n komennot puolustivat hienosti paikkaansa. Lapsi alkoi myös muistaa komentoja itse. Tässä käytettiin yllä mainittujen komentojen lisäksi cc-komentoa ja komentoa ., joka on todellinen vi:n lippulaiva :)