Vijftien jaar geleden kreeg ik op de universiteit onderwijs over Functioneel progammeren. Dat gebeurde destijds aan de hand van de taal Miranda. We moesten daar destijds allerlei leuke opdrachten bij maken. Ik herinner mij nog opdrachten zoals het maken van een Fibonacci reeks, het boer, wolf, schaapen witlof raadsel etc. Deze reeksen en raadsels moetsen dan opgelost worden in een functioneel progamma.

De afgelopen jaren heb ik niet geprogrammeerd in een functionele taal maar met de komst van lambda expressies in Java 8 en het gebruik van Apache Storm en later Apache Spark en bovendien een collega die de Coursera cursus over Scala gevolgd heeft is het hoog tijd om mijn kennis op te frissen. Vandaar dat ik het boek gekocht heb van Paul Chiusano en Runar Bjarnson.

Gisteren heb ik het eerste hoofdstuk gelezen en ik ga zeker verder lezen. Het leuke is namelijk dat de auteurs er niet op uit zijn om je te leren programmeren in Scala maar veel meer om je te leren Functioneel te programmeren.

Functioneel programmeren wordt in hoofstuk 1 van het boek omschreven als het programmeren met 'pure' functies. Het woord pure wil zeggen dat de functies geen neven of bij effecten mogen hebben. De claim van de auteurs is dat zulke functies leiden tot modulaire programma's. Ik ben benieuwd. Ik herinner me namelijk nog dat een hele hoop dingen niet konden met Functioneel programmeren. Bijvoorbeeld user interfaces, gebruik van IO, netwerk enz. Met de komst van talen als Scala en Clojure is er waarschijnlijk een einde gekomen aan deze beperkingen.

De komende weken ga ik het boek lezen en de bijbehorende opdrachten maken en wellicht er nog een blog over schrijven. :-)