Les 2

Het vervolg op onze ‘all-inclusive’ programmeer cursus! Nu dat we newlisp en de editor geinstalleerd hebben gaan we wat experimenteren in de REPL, dat is het onderste gedeelte van je editor window. REPL staat voor Read Evaluate Print Loop, alles wat je intypt en afsluit met <enter> wordt gelezen, geëvalueerd, het resultaat wordt geprint en je ziet de cursor weer en kunt opnieuw wat intypen. Je kunt hiermee heel interactief wat uitproberen en dat gaan we nu dan ook doen.

> 1
1
> 3
3
> 2.345
2.345

Ok, niet echt spectaculair, als je een nummer intypt, evalueert dat blijkbaar tot zichzelf.

> "ferry"
"ferry"

Net zoals een woord/string.

> (+ 1 2 3)
6

Ah, nu wordt het interessanter, wat is hier aan de hand? Wat we hier zien is hoe een list/lijst geëvalueerd wordt, een list bestaat uit een openingshaakje dan nul of meer symbolen, cijfers, woorden of een andere list, alles van elkaar gescheiden door spaties en dan een sluithaakje. Als een list wordt geëvalueerd dan wordt de eerste term gezien als een functie en de volgende als parameters voor die functie. Dit alles in pre-fix notatie zoals je ziet, dus niet (1 + 2) , (dat noemen we infix notatie).

> '(+ 1 2 3)
(+ 1 2 3)

Wat is hier aan de hand? Blijkbaar kunnen we de evaluatie ‘stoppen’ door er een quote voor te zetten, we hadden ook kunnen typen:

> (quote(+ 1 2 3))
(+ 1 2 3)

Resultaat is hetzelfde, maar wat hebben we hier nu aan? Nou we kunnen dan een list gebruiken om data in op te slaan en weer uit te halen:

> (first '(1 2 3))
1
> (rest '(1 2 3))
(2 3)
> (set 'ferry '("aardig" "leuk" "bescheiden"))
("aardig" "leuk" "bescheiden")
> ferry
("aardig" "leuk" "bescheiden")
> (first (rest ferry))
"leuk"

Dit is even genoeg voor de eerste kennismaking, morgen gaan we verder met eigen functies aanmaken en beginnen we te programmeren aan onze eigen Big Data/Machine Learning Scrabble Bot! (leuk stukje om te lezen hoe krachtig een REPL kan zijn, zie deze link)

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *