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

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. Lees verder Les 2

Dichtleggen

“Dat moeten we dan eerst even dichtleggen” werd mij terhand gedaan in de betekenis van: eerst ervoor zorgen dat alle regeltjes gevolgd zijn oftewel ervoor zorgen dat ze ons niet kunnen pakken oftewel ‘cover our ass’.

Ik keek naar het woord en ik voelde er helemaal niks bij. Langzaam drong de verschrikkelijke waarheid tot mij door: het was onuitsprekelijk saai! En saaiheid beste lezers is de grootste vijand, zonder dat je er erg in hebt ben je alleen nog maar bezig met dichtleggen en ben je een saaie oude lul geworden.

Dus alarmfase 1 als iemand iets wil dichtleggen, wij willen niet dichtleggen wij willen openbreken!

Aanlijnen

“Ok dan zijn we weer aangelijnd” hoorde ik pas, tot mijn verbazing moet ik zeggen want ik had de term nog nooit gehoord.

Waarschijnlijk werd er mee bedoeld dat ze op de zelfde golflengte zaten, het eens waren of weer bijgepraat waren het is mij niet helemaal duidelijk.

Wat mij wel duidelijk is, is dat ik nooit ‘aangelijnd’ zou willen zijn: ik zag allemaal visioenen van vissen aan een lange lijn met gruwelijke haken door hun mond. Waar bij eerdere neologismen (mensenmens, in zijn kracht zetten) nog gewaarschuwd moest worden voor de diepere betekenis lijkt me dat hier volstrekt overbodig.

Dus het enigste wat je kunt doen als iemand even met je wil ‘aanlijnen’ is: maken dat je wegkomt, en wel zo snel mogelijk!

Kracht

“Iemand in zijn kracht zetten” je hoort en leest het wel vaker en er wordt mee bedoelt iemand (weer) laten doen waar hij of zij goed in is. Maar is dat echt de bedoeling of moet je niet ontzettend oppassen als iemand dat met je wil doen?

Je zou in de kracht zetten kunnen vergelijken met een auto in zijn versnelling zetten: koppeling loslaten en hup daar komt de kracht. Maar waar zit die koppeling bij mensen? Mensen hebben geen koppeling die moeten aangeduwd worden of anderszins bewogen. Dus pas op als iemand je in je kracht wil zetten: voor je het weet heb je een schop onder je kont te pakken!