Programming (and thinking) the functional way | Pedro Alvarez-Tabio