Jeremy Gibbons: Algorithm Design with Haskell [video]

  • I've been enjoying learning Haskell for the last 6 months and one of the things that I really enjoy is learning new algorithms that use functional approaches (and use immutable data structures).

    Coming from a Java background, where most data structures are mutable (lists, maps/sets, trees, etc) finding how the same problems are used with immutability is quite mind expanding (height balanced trees, rose trees, finger trees, etc) and how some other algorithms are impractical and expensive (e.g. bubble sort).

  • The other book on Haskell by Richard Bird is also excellent: Thinking Functionally with Haskell (https://www.cs.ox.ac.uk/publications/books/functional/).