Workshop: Tweet"Become a Functional Hacker: Think like a Fundamentalist, Code like a Pragmatist"
Become a Functional Hacker: Think like a Fundamentalist, Code like a Pragmatist Advanced
Functional Programming in Haskell with Category Theory and Practical Applications
The aim of this course is to teach the principles of pure lazy functional programming, and the corresponding Category Theoretical principles, using the modern functional language Haskell. Broadly speaking, functional programming is a style of programming in which the primary method of computation is the application of functions to arguments. Among other features, functional languages offer a compact notation for writing programs, powerful abstraction methods for structuring programs, and a simple mathematical basis that supports reasoning about programs. Many of the advanced techniques in modern functional languages, such as monads and catamorphisms, are closely based on principles from category theory such as functors, initial algebras, and of course monads and Kleisli categories.
This course is based on the highly popular book and accompanying courses by Graham Hutton (http://www.cs.nott.ac.uk/~gmh/fun.html) with the additional twist that we translate the abstract concepts from the lectures to code in concrete mainstream imperative languages such as JavaScript, Dart, C#, and Java. This is to emphasize that (pure) functional programming often works best as “tools for thought” while object-oriented languages and frameworks work best as “tools for building running software”.
The course is taught by prof. dr. Erik Meijer, who is affiliated with Microsoft (Redmond, USA), in combination with a part time appointment at Delft University of Technology as professor of Cloud Programming.