What's awesome about functional programming

Posted on January 17, 2021 by Thomas Mahler

Some weeks ago I gave an introductory talk on functional programming at an in-house mini-conference where I tried to explain basic concepts of functional programming to a crowd of developers with their backgrounds mostly in imperative and OO languages.

Initially I had planned to present the contents of my Why Haskell Matters article but that turned out impractical because of the time constraints of my talk.

So I prepared a condensed slide deck focussing on the more elementary sections, which worked quite well.

Recently I stumbled across IHaskell, a Haskell kernel for the Jupyter Notebook platform. As I like the interactive approach of Jupyter notebooks quite a lot I transferred my presentation into the Jupyter notebook format.

As I’m quite happy with the result I’d like to make it available to a wider audience. I have prepared three different versions:

  1. The notebook as rendered by nbviewer.jupyter.org. Unfortunately it’s not interactive. But you won’t need a local Jupyter installation.

  2. A reveal.js presentation which I generated from the notebook. This version just needs a web-browser.

  3. An Interactive version of the reveal.js slides hosted on Binder: Binder (Press ALT-r to start the presentation.) This version uses RISE to allow interactive notebook cells while still being in presentation mode. This version is based on a Dockerfile that adds the RISE extension to an ihaskell-notebook docker image. This Dockerfile is then built and served by Binder.

If you intend to use IHaskell notebooks locally Please follow this installation guide.

Sourcecode of my IHaskell notebook and the dockerfile are hosted in this github repo.