Resources
- See our setup instructions for installing the software needed in this course: GHC, stack, the VS code IDE, and related tools.
Haskell Library Reference
Looking for a function but don't know what it's called? Want to see the documentation for a particular function? Hoogle searches many standard libraries and can search either by name or by type.
Haskell Prelude These types, classes and functions are automatically imported in every module.
Standard library. Unless the homework assignments say otherwise, you can import any module from this set for use in your homework.
Stackage is a huge curated collection of Haskell libraries that are guaranteed to work together, accessible via the
stack
tool. You shouldn't use these for your homework assignments, but you can use any of these libraries in your project at the end of the semester.
Haskell Books
Learn You a Haskell for Great Good! is a tutorial on the Haskell language. It is "the funkiest way to learn Haskell, the best functional programming language around". This guide is meant for people who have programmed already, but have yet to try functional programming.
Programming in Haskell teaches programming from first principles using the Haskell language.
What I wish I knew when learning Haskell will take you far beyond CIS 5520, but is a good reference for the Haskell ecosystem.
Real World Haskell, by Bryan O'Sullivan, Don Stewart, and John Goerzen, published by O'Reilly. A thorough and detailed introduction to Haskell that gets into the nitty gritty of using Haskell effectively in the "real world". Can be read online for free, or in dead tree form.
Programming in Haskell, 2nd Ed. Graham Hutton, the master of Haskell education, has recently updated his textbook. It starts gently and covers the core material of this class with clarity and grace.
Parallel and Concurrent Programming in Haskell describes how functional programming matters in the context of multithreaded and multicore architectures.
Beginning Haskell: A Project-Based Approach A new textbook --- includes a treatment of modern, advanced features.
Help/community
Haskell.org. Top-level page for Haskell open-source community.
Functional programming slack hosts a slack channel for many fp languages, including Haskell.
Planet Haskell aggregates blog posts from the Haskell community.
There is a Haskell subreddit for aggregating Haskell-related websites, blog posts, and news.