We are based on CIS194 which is a 12 week course and we will extend it with advanced contents.
Each class has average length of 2 hours. Each week, we will pick a time and place, and announce it.
Currently we are using Yorgey's cis194 course.
This course is widely recommended by Haskell learners.
After each week's class, participants need to complete assignments from the cis194 course and submit to this repo as a Pull Request.
You shouldn’t skip the assignments, and remember:
If you don't do your homework and expect to be a Haskell programmer in the end of this course just by coming to/reading the lecture, you are kidding yourself. —Shine Li
Why is Zehua so good even though he jigs classes all the time? Because he does his homework. —Shine Li
You can also raise any questions or issues when you are learning Haskell and raise it to here.
You can submit your assignment to this path cis194/week1/Yourname
, replace Yourname with your own.
If you don't do your homework and expect to be a Haskell programmer in the end of this course just by coming to/reading the lecture, you are KIDDING yourself.
- Install stack
stack new <PACKAGE_NAME> <TEMPLATE_NAME>
- Then you have the following choices:
- Use GHCi. This is invoked via
stack ghci
under your project root.- Every time you change your code, you can use
:r
to reload your ghci session with latest code. It will show error if your code does not compile.
- Every time you change your code, you can use
- Use GHCid
- Install GHCid by running
stack install ghcid
under your project - Run
ghcid --command "stack ghci --ghci-options=-fobject-code"
- The above command will lunach a
stack ghci
session with type checking and automatically re-check your code when it changes. It will print out errors when you code does not compile.
- Install GHCid by running
- IDE extension
- VSCode
haskell-ghcid
It runs GHCid and put the feedback in the output window as well as inlining themHaskell Syntax Highlighting
to highlight Haskell syntax- There are other extensions like
Haskell Language Server
,Haskero
which required much more complex set up.
- vim/neovim
- TBD
- Emacs
- TBD
- atom
atom-haskell
This is a plugin that installs a list of other plugins to support Haskell development
- VSCode
- Running tests
stack test
- Use GHCi. This is invoked via
- There are valuable take away knowledge hiding in the comments of homework PRs, they are collected under https://github.com/fp-works/2019-winter-Haskell-school/wiki/Best-Practises-Tips for easy discovery.
- Edit https://github.com/fp-works/2019-winter-Haskell-school/wiki/TIL to share what you have learnt today!
YouTube channel Instant FP
We will upload Functional programming videos inregually into this Channel. You can subscribe to it.