Pablo Nogueira, Post-doctoral Researcher, Technical University of Madrid (UPM), Spain
I will briefly explain the basic concepts of functional programming. I will then move on to show you typical examples of pure code in Haskell involving currying, touching on the topic of laziness. Next, I will show you that imperative programming is functional programming with a data structure: the monad. I will illustrate the basic ideas with a simple 6-line program that reads a file and writes a new file with the former’s lines sorted. If time permits, I could show you a monadic type-checker for a simple expression language.