Les 5

Een hot nieuwtje in deze  #programmerenkunjeleren post, je hoeft niks meer te installeren maar je kunt newlisp nu gewoon in je browser, dus ook op je tablet of phone draaien, zie link ter linkerzijde. Er zitten nog wat beperkingen aan, vooral met opslag maar daar wordt aan gewerkt!

Ok, nu verder met de gewone les, de oplossing van de eerste opgave, sorteer op lengte is door ook een functie mee te geven aan de sort functie om aan te geven wat groter of kleiner is. Bijvoorbeeld de volgende (anonieme) functie:

(fn(x y) (< (length x) (length y)) true nil)

Dit is heel krachtig, je hoeft alleen een functie mee te geven aan een standaard functie om een zeer specifieke sorteer volgorde te verkrijgen. De volgende opgave was om hoe een lid van een lijst te verwijderen, oplossing:

Lees verder Les 5

Les 4

We gaan onverdroten verder met onze all-inclusive programmeercursus. Deze keer gaan we wat dieper in op functies. Vorige keer had ik er al een functie definitie ‘ingesneaked’ en wel het stukje:

(fn(x) (> 9 (length x))

dit is een voorbeeld van een anonieme functie, hij heeft geen naam omdat hij zo simpel is kun je hem makkelijk inline definiëren en meegeven aan een andere functie.(LISP heeft dus ‘hogere-orde’ functies). Lees verder Les 4

Les 3

De vorige keer zagen we dat Lisp programma’s en data bestaan uit ‘lists’: lijstjes. Daar komt de naam LISP ook vandaan: LISt Processing. De eerste positie in een lijst wordt behandeld (geëvalueerd) als zijnde een functie, de volgende posities zijn dan de input data voor die functie.

Je kunt een lijst ook als data behandelen, dan zet je er een quote voor, alles wat achter een quote staat wordt niet geëvalueerd. Maar je kunt lijstjes ook ‘nesten’, lijstjes in lijstjes in ….ad infinitum, je moet het zien als een boom structuur elk openingshaakje maakt een nieuwe vertakking aan. Lees verder Les 3