• Stars
    star
    7,847
  • Rank 4,601 (Top 0.1 %)
  • Language Makefile
  • License
    Creative Commons ...
  • Created about 10 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Learn Haskell

How to learn Haskell

This is a recommended path for learning Haskell based on experience helping others. A list of recommendations from one of the authors of the Haskell Book.

For non-English speakers

Don't sweat the stuff you don't understand immediately. Keep moving!

Community

Our IRC channel is #haskell-beginners on Libera Chat.

IRC web client here.

The haskell mailing lists.

Community Guidelines

See the community guidelines to understand the conduct that is expected in the IRC channel. You'll get a warning if you're not obviously trolling, but be aware the channel is exclusively for those learning or teaching Haskell.

Installing Haskell

Use Stack to get going with Haskell

Get Stack to get GHC installed and to build your projects.

If you don't know anything about Stack and would like an overview, check out this comprehensive Stack video tutorial.

Also, DO NOT INSTALL HASKELL PLATFORM

Instead of following the instructions on Haskell.org, get Stack.

Why not platform?

https://mail.haskell.org/pipermail/haskell-community/2015-September/000014.html

How should I learn Haskell?

The core recommendation is to read the lectures and complete all exercises/homework for the Spring 13 version of cis1940 followed by the FP course. Both are linked below. Everything else can be considered optional and is mentioned so you know where to look.

Haskell Programming from First Principles.

@dmvianna wanted me to let you know that the below are just the free recommended resources. If you're willing to check out a book, we heartily recommend our own Haskell Book! If you can't afford the book for any reasons, please email us using the contact information at our support page.

Haskell Book subsumes all of the primary resources recommended here

Yorgey's cis1940 course

Do this first if aren't getting the Haskell Book, this is the best free introduction to Haskell.

Available online.

Brent Yorgey's course is the best I've found so far. This course is valuable as it will not only equip you to write basic Haskell but also help you to understand parser combinators.

The only reason you shouldn't start with cis1940 is if you are not a programmer or are an inexperienced one. If that's the case, start with Thompson's book and transition to cis1940.


Functional Programming course

This is the course we recommend doing after Yorgey's cis1940 course

Available on github here.

This will reinforce and give you experience directly implementing the abstractions introduced in cis1940, this is practice which is critical to becoming comfortable with everyday uses of Functor/Applicative/Monad/etc. in Haskell. Doing cis1940 and then the FP course represents the core recommendation of my guide and is how we teach everyone Haskell.


Supplementary course after cis1940 and the FP course

Provides more material on intermediate topics

cs240h is available online:

This is Bryan O'Sullivan's online course from the class he teaches at Stanford. If you don't know who he is, take a gander at half the libraries any Haskell application ends up needing and his name is on it. Of particular note if you've already done the Yorgey course are the modules on phantom types, information flow control, language extensions, concurrency, pipes, and lenses.


Resources for specific topics in Haskell

These resources are not vetted or tested with learners as cis1940 and FP course have been, but they're linked in the topic listing so you have ideas on where to begin. This includes things like intermediate/advanced concepts and subjects like tooling and text editors.

Dialogues

Hosted in this repository here.

These are actually pretty important and helpful. Look here for deep dives on a variety of topics.

More Repositories

1

fp-course

Fork of the original Data61 course to be more Stack friendly
Haskell
423
star
2

bloodhound

Haskell Elasticsearch client and query DSL
Haskell
419
star
3

esqueleto

New home of Esqueleto, please file issues so we can get things caught up!
Haskell
367
star
4

dotfiles

My .emacs, .screenrc, etc.
Emacs Lisp
149
star
5

revise

RethinkDB client for Clojure
Clojure
146
star
6

brambling

Datomic schema and data migration library/toolkit
Clojure
69
star
7

blackwater

Clojure SQL query logging
Clojure
56
star
8

open-haskell

Community edited and directed course based on Spring '13 cis194.
Haskell
46
star
9

blacktip

Haskell clone of Boundary's k-ordered unique id service
Haskell
40
star
10

brotli2-rs

Brotli encoders/decoers for Rust
Rust
29
star
11

papers

29
star
12

presentations

what it says on the tin
Haskell
24
star
13

hedgehog-checkers

Like the checkers library, but for hedgehog. Common stuff you'd want to check.
Haskell
22
star
14

makefiles

I use Makefile as a sort of command dispatcher/secondary memory, this is a repo of the common ones I keep reusing
17
star
15

trajectile

Tracing library for Clojure
Clojure
13
star
16

ledgertheory

Coq
13
star
17

boxcar-willie

Tomatoes or something
Rust
13
star
18

neubite

http://www.bitemyapp.com
JavaScript
11
star
19

lefortovo

безграмотный gitignore and makefile fetcher in Rust
Rust
11
star
20

clojure-template-benchmarks

Needed proper benchmarking of frontend views
Clojure
11
star
21

bulwark

Throttling / IP banning library for Ring-compatible Clojure apps based on Kickstarter's Rack::attack
Clojure
11
star
22

monad-transformers-step-by-step

Haskell
10
star
23

bluetick

SQL DSL
Haskell
10
star
24

hacker-type-emacs

Hacker typer for Emacs
Emacs Lisp
10
star
25

buttress

Messing around
Haskell
9
star
26

shawty-prime

url shortener
Haskell
9
star
27

duke

Elasticsearch client and query DSL for Rust, based on Bloodhound
Rust
8
star
28

teef

Hakyll project for my website.
Haskell
8
star
29

studyhaskell

Study Haskell in a group setting
6
star
30

bedrock

A Yesodian foundation
Haskell
6
star
31

haskell-wishlist

Libraries wishlist / project ideas / learning opportunities
6
star
32

emojicon-bootstrap

emojicons scrape and curated database for dash expander
Python
5
star
33

persistent-activerecord-ecto

Haskell
5
star
34

my-limes

How am I going to hold onto all these mutuals, Rust edition
Rust
5
star
35

Pijul

Copy
OCaml
5
star
36

yesod-template-project

Haskell
5
star
37

shiftrss

Rust clone of https://siftrss.com/
Rust
5
star
38

lambdadelta

Imageboard software written in Haskell
Haskell
4
star
39

shawty

Tiny URL shortener web app made with Haskell, Scotty, Hedis (Redis)
Haskell
4
star
40

ghc-gc-tune

Haskell
4
star
41

styles

Stylish themes for various websites I've modified.
CSS
4
star
42

doc-workshop

Little project for automatically rebuilding documents as you save them and work on them.
Haskell
3
star
43

haskell-jwt

JWT thingy, not mine.
Haskell
3
star
44

sendgrid-haskell

Haskell client for sending email via SendGrid's API
Haskell
3
star
45

monohaskell

sssshhhh
CSS
3
star
46

hagglers

Haskell Kaggle Project
3
star
47

entr

Not mine, this is a mirror of https://bitbucket.org/eradman/entr/
C
3
star
48

github-dark-theme

my modification of the original dark userstyle to make it more readable
3
star
49

netwire

Real repo at: darcs get http://hub.darcs.net/ertes/netwire
Haskell
3
star
50

cis194-fall16

Haskell
2
star
51

hsnippet

Original is located at: https://bitbucket.org/mightybyte/hsnippet/
Haskell
2
star
52

furp

Every kid wants a Furpy
Haskell
2
star
53

aws-tools

Collection of tools for AWS automations
Haskell
2
star
54

polyparse

Archived from the darcs repo
Haskell
2
star
55

csvtest

Haskell
2
star
56

chat

chat
Haskell
2
star
57

grom

grom eats your Clojure code
Haskell
2
star
58

geesthacht

DynamoDB client for Haskell
Haskell
2
star
59

Scroot

Django auditing app for the lazy
Python
2
star
60

simon-speck-rs

Currently buggy attempt at a SIMON implementation in Rust
Rust
2
star
61

hpp

A Haskell Pre-Processor
Haskell
2
star
62

strong-types-and-testing

Haskell
2
star
63

freki

A Haskell AI suite for playing Warmachine
Haskell
2
star
64

knob

A Toggl client for posting time entries
Rust
2
star
65

timesheet-csv-example

Haskell CSV processing example
Haskell
2
star
66

openbusiness

contracts, etc.
2
star
67

whostalkin

whostalkin
Haskell
2
star
68

opvault

1Password library in Haskell
Haskell
2
star
69

ipython

same as the original, but ignores lines with #PDBNULL in them.
Python
1
star
70

stm-chans

Mirror of http://community.haskell.org/~wren/stm-chans/
Haskell
1
star
71

hickey

A git-backed wiki written in Haskell.
Haskell
1
star
72

esqueleto-select-source-error-misuse

Reproducing https://github.com/bitemyapp/esqueleto/issues/29
Haskell
1
star
73

hips

Haskell
1
star
74

hst

Automatically exported from code.google.com/p/hst
Haskell
1
star
75

bluster

Tiny Clojure utility belt for SwaggerUI (http://swagger.wordnik.com/)
Clojure
1
star
76

exference-exference-core

Haskell
1
star
77

diwali

Little toy problem, ignore it if I haven't pointed you here
Haskell
1
star
78

example-haskell-mailer

Haskell
1
star
79

thodol

it's a wiki
JavaScript
1
star
80

plow-email

An email surver! Hooray!
Haskell
1
star
81

brainfuck

Concise Brainfuck Interpreter using ListZippers in Haskell
Haskell
1
star
82

haizod

An IRC bot on a Raspberry Pi 2
Haskell
1
star
83

snap-slave-thread-repro

Ghost thread reproduction
Haskell
1
star
84

luatex-arabic-example

TeX
1
star
85

bushfire

Terminal Twitter client
Haskell
1
star
86

Luna

The Luna Programming Language
Haskell
1
star
87

break-unagi-chan

This isn't really a "fault" in unagi-chan, I'm misusing it here.
Haskell
1
star
88

hhh

Messing around with Servant
Haskell
1
star
89

prelim

Better Prelude
Haskell
1
star
90

Pasterip

Rips content from Pastebin, not originally mine.
Python
1
star
91

nt-in-haskell

Not mine, this is Compall's shindig - https://gitorious.org/nt-in-haskell
Haskell
1
star
92

broadcast-bench

Haskell
1
star
93

exference-exference

Haskell
1
star
94

rebase_example

Haskell
1
star
95

panic-repro-initTc-unsolved-constraints

Haskell
1
star
96

pinbin

Haskell
1
star
97

scratch

Scratch space for ideas, lessons, etc
Haskell
1
star
98

j

J Programming language source
C
1
star
99

dummy-package

Haskell
1
star
100

tf-idf-1

Document ranking using tf-idf
Python
1
star