FP101x – Introduction to Functional Programming

This week, I started the Functional Programming course on edX! Almost all of my recreational programming time has been devoted to Go lately, which is decidedly not functional. But I’m excited about the release of Elixir 1.0 and I’ve been meaning to do more with Clojure, so I think I’ve got a lot more functional programming in my future. Perhaps this course will give me a boost!

Haskell

keep calm and curry onand ghci in terminal

The course is not a Haskell course per se, but that’s what it uses for all the examples. I installed the Glasgow Haskell Compiler with

sudo apt-get install ghc

That was easy. Thanks, Debian!

$ cat hello.hs
module Main
    where
      main=putStrLn "Hello, World!"
$ ghc -o hello hello.hs
[1 of 1] Compiling Main             ( hello.hs, hello.o )
Linking hello ...
$ ./hello 
Hello, World!

Emacs

Next I configured Emacs for Haskell by adding

(depends-on "haskell-mode")

to my Cask file and

(use-package haskell-mode
  :init
  (progn
    (add-hook 'haskell-mode-hook 'haskell-indent-mode)
    (add-hook 'haskell-mode-hook 'interactive-haskell-mode)))

to my Emacs init file. Now I’m ready to try the first set of exercises!

screen shot of Emacs in haskell-mode and ghci in terminal

Figure 2: Emacs in haskell-mode and ghci in terminal

Advertisements
FP101x – Introduction to Functional Programming

One thought on “FP101x – Introduction to Functional Programming

  1. […] us concentrate on things like recursion, testing, and higher-order functions. Contrast this with the Haskell course, which would have us believe that functional programming is all about algebraic data types. Towards […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s