Note: I try to update this list from time to time. Last update was on: 22-07-17.
So you got a taste of functional programming in Haskell, you might have read LYAH or did CIS194 and now, you are looking for ways to transition from a beginner Haskeller to an intermediate Haskeller and beyond, but you are not sure where to go, what to do or what to read.
You came to the right place.
Here is a modest list I composed of a few resources one might want to read or follow after completing LYAH or CIS194, I will also list a few project ideas for you to get started.
Building Haskell Projects
- haskell-lang.org/get-started will walk you through the basic steps of using stack and ghc
- How I Start: Haskell - This is a more thorough guide on how to build software in Haskell using stack
- The Haskell Heap - An illustrated guide for Haskell's laziness.
- The Typeclassopedia - About some of Haskell's built-in type classes
- Operator Glossary explains some of the more common operators you'll find in Haskell code
- Haskell Tutorials - A Tutorial - A guide to writing great Haskell documentation for your libraries and code
Project based tutorials
- Making a Website with Haskell - How to build a website using Scotty.
- Write Yourself a Scheme in 48 Hours, Version 2.0 - A guide to building your own Scheme interpreter.
- Streaming Huffman Compression in Haskell
- State of the Haskell Ecosystem
- Haskell is easy - an opinionated list of recommended Haskell libraries
Learning More Haskell
- The Wikibook - Another free Haskell resource
- What I wish I Knew When Learning Haskell - A really long reference for a lot of features, libraries and concepts in Haskell. Also links to other materials by subject.
- Parallel and Concurrent Programming in Haskell - A really good book about... Parallel and concurrent programming in Haskell.
And few project ideas:
- Write a unix command line utility like cat, echo, less
- Write an over the network Rock Paper Scissors game
- Build a static blog/website generator like my Hen or a blog with scotty like Hablog
- Build a picture album website
- Build a scrapper - go online and get important information from a website you like and display it in a nice way
- Write a parser/interpreter/compiler for a small PL - I wrote a blog post on that
- Build a chat server
- Build a tic tac toe game with gloss