[Haskell-cafe] Intermediate Modern Haskell

Jacques Carette carette at mcmaster.ca
Thu Dec 17 03:20:08 UTC 2020


I will be teaching a second Haskell course next semester.  Let's assume that

Introducing functional programming

Getting started with Haskell and GHCi

Basic types and definitions

Designing and writing programs

Data types, tuples and lists

Programming with lists

Defining functions over lists

Playing the game: I/O in Haskell

Reasoning about programs

Generalization: patterns of computation

Higher-order functions

Developing higher-order programs

Overloading, type classes and type checking

Algebraic types


(i.e. the first chapters of Thompson's Haskell: the Craft of Functional 
Programming book is "beginner, classic Haskell".  The next few chapters, 
namely

Abstract data types

Lazy programming

Programming with monads

Domain-Specific Languages

Time and space behaviour


would be (re)done at the start of such a second course. The question for 
cafe is: what else? I will likely cover:
- Typeclassopedia
- finally tagless
- Template Haskell
- Optics
- GADTs
- recursion schemes


I should probably cover parser combinators, pretty-printing, 
cabal&stack. I know that http://dev.stephendiehl.com/hask/ 
<http://dev.stephendiehl.com/hask/> gives me one heck of a smorgasbord 
of options, which is kind of a problem.


Things I know I will not cover:
- dependent types (if I was going to do that, I'd switch to Idris/Agda)
- concurrency (don't ask)


Jacques

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20201216/0d92b3cc/attachment.html>


More information about the Haskell-Cafe mailing list