HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
bitemyapp
learnhaskell
Makefile2014–2022
bitemyapp / learnhaskell

learnhaskell

Learn Haskell

33Distinct people
64Mentions
2Explicit recommenders
8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Learn Haskell

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I recommend this, https://github.com/bitemyapp/learnhaskell

lockfinn used a recommendation phrase. 2 indexed comments match. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 7:02:50 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year64 dated mentions

Observed mentions: 2014-05-20 11:05:25 UTC to 2022-11-01 06:32:14 UTC.

05101520252014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 23 mentions; 1 submissions, 22 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 25 mentions; 1 submissions, 24 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 7 mentions; 0 submissions, 7 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments20182019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2022

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC23122
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC25124
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC707
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC202
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC202
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC000
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC101
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC303

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
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 Auf Deutsch En Español En Français Na Hrvatskom Bahasa Indonesia In Italiano 日本語 한국어 Em Português În Română По-русски Srpski Sa Tagalog Türkçe Українською 简体中文 繁體中文 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: Spring 14 Winter 16 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.
Read the full README on GitHub

What Hacker News says

25 sources
Use Stack instead of installing Haskell platform, your distro's Haskell package: https://github.com/commercialhaskell/stack After installing stack and putting ~/.local/bin on your path here is how I start a project: cabal init < answer questions > stack init The above will be replaced by `stack new` in the future I think, but `stack new` doesn't work for what I'm doing atm. Learning: https://github.com/bitemyapp/learnhaskell http://haskellbook.com/ After those, just start writing crappy Haskell code to solve real tasks you need/want solved. The most important thing is to focus on creating working software with the language, since that's the fastest way to learn. After you've done this a couple times start reading source code of libraries which solve the same problems you've implemented and see how they are different. This may
Read the rest
include lots of learning before you understand the libraries. Once you understand this library, start going down the most popular libraries and understanding how they work (You might want to skip lens though! I hear it's very difficult to understand the source code and sheer generality): http://hackage.haskell.org/packages/top Some papers I feel I'd do a disservice of not mentioning: http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/ba... http://www.cs.virginia.edu/~wh5a/personal/Transformers.pdf Also, I use these as references while writing crappy (and sometimes not as I get more experienced) Haskell code: https://en.wikibooks.org/wiki/Haskell http://book.realworldhaskell.org/read/ http://book.realworldhaskell.org/read/ http://adit.io/posts/2013-04-17-functors,_applicatives,_and_... https://www.fpcomplete.com/school https://www.fpcomplete.com/recent-content
In Ask HN: How can I learn Haskell?
The main problem is the difficulty to hire Haskell programmers. Recruiting is crucial to a startup's success. "We were pleased to get a total of 42 applications, of which 19 merited serious consideration, and we eventually settled on a shortlist of 7 to interview. " [0] Then there's the entire ecosystem surrounding Haskell, which is still old and antiquated (looking at you Cabal) and moving very slowly (interfacing to NoSQL or AWS, etc...). > looking at you cabal See this link for a solution: https://news.ycombinator.com/item?id=9766943 > interfacing to NoSQL I recently used the Haskell riak[3] binding in my day job for an application. The mongoDB[4] package was uploaded "Tue Jan 19 06:04:06 UTC 2010"[5] > AWS There has been an AWS binding since 2011[1][2]. > etc cassandra[6][7][8] couchdb[9] > Finally, the very high bar to just learn how
Read the rest
to correctly program in Haskell puts it out of reach of 99% of the developer community. A 10 year old can do it[9], so I'm sure more than 5% of the developer community can as well! I wouldn't say I'm a spectacular programmer and I have both learned Haskell and used it in the real world easily enough. I will admit in the past there was a learning issue, but actions to make Haskell easier to learn have (and continue) to happen.[11][12][13][14] I'm looking forward to any rebuttals you may have to these! :) 0: http://www.well-typed.com/blog/2010/08/on-hiring-haskell-peo... 1: http://hackage.haskell.org/package/aws-0.0.1 2: http://hackage.haskell.org/package/aws 3: http://hackage.haskell.org/package/riak 4: http://hackage.haskell.org/package/mongoDB 5: http://hackage.haskell.org/package/mongoDB-0.1 6: http://hackage.haskell.org/package/cassandra-thrift 7: http://hackage.haskell.org/package/hscassandra 8: http://hackage.haskell.org/package/cassy 9: http://hackage.haskell.org/packages/search?terms=couchdb 10: https://superginbaby.wordpress.com/2015/04/08/teaching-haske... 11: https://github.com/bitemyapp/learnhaskell 12: http://haskellbook.com/ 13: http://www.amazon.com/Beginning-Haskell-A-Project-Based-Appr... 14: https://en.m.wikibooks.org/wiki/Haskell
In Stack 0.1 – A new build tool for Haskell
Don't confuse new terminology with math. Programming has lots of terminology, and some of it is backed by mathematically rigorous definitions, but that doesn't require you to know that in order to use them. OO has 'Inheritance', 'Subclassing', 'SOLID', 'Liskov', every design pattern name, 'Object', 'Class', 'Overloading', 'Factory', etc, etc. Haskell has similar words, covering both core concepts, and common patterns of implementation. 'Monoid', 'Monad', 'State', 'Reader', 'Function', 'Lambda', 'Typeclass' are all examples of terminology in Haskell None of those words are inherently more difficult than the OO ones, you're just not familiar with them. The best way to learn Haskell is to follow along with a course that has you do exercises, and actually do the exercises. See the https://github.com/bitemyapp/learnhaskell course for some c
Read the rest
lass recommendations.
In “Mostly functional” programming does not work (2014)
>Throwing a beginner head first into recursion and restricting all their programs to be a singular composite of expressions is the, unfortunately, best way to turn away a beginner. The alien-ness is what makes it difficult, not the actual design. Less design surface area makes it considerably easier to learn in that respect. That doesn't mean Haskell is easy to learn in general, for now. There's a huge difference in jumping from Ruby->Python->JS vs. learning how to program in terms of a foundation built on lambda calculus. "singular composite of expressions" - this doesn't mean a lot, and doesn't really fit, I think. You can hand-wave do syntax and pretend you're writing imperative code in IO. A lot of people do that when first starting out so they can get the hang of things. SPJ (OG Haskell honcho & compiler hacker) likes to say that Has
Read the rest
kell is the nicest imperative programming language to use. I'd tend to agree :) Takes practice. You need exercises. If you haven't already seen it, I'd recommend taking a look at the guide I've maintained on how to learn Haskell: https://github.com/bitemyapp/learnhaskell
In Haskell Communities and Activities Report, May 2015
Copypasta from the first time this was posted (with the wrong URL): Pretty thrilled about this book. There are rather few recent Haskell texts with beginners in mind, and Chris of the https://github.com/bitemyapp/learnhaskell fame is probably one of the most qualified people out there to teach the subject. At Front Row we actually use learnhaskell pretty heavily with our new developers. For us it's the central hub for devs to start learning the language. Anything that helps people get started and advance through the skillset is a huge boon to the community.
In Haskell Programming
This has been my experience as well. Learning basic Haskell (from cis194[0]) helped with Elm, however it took a while (about 3 days) before I began being productive at all. Too productive, in fact. Once the basic application is in place, implementing additional features have been laughably easy. For example, implementing the search feature[1][2] took surprisingly little effort. [0]: https://github.com/bitemyapp/learnhaskell#yorgeys-cis194-cou... [1]: https://github.com/srid/chronicle/commit/4a6c18147bf1596b234... [2]: https://github.com/srid/chronicle/commit/fb040b9e3268d7d843e... The other benefit is static typing with option types leading to nearly no runtime error! For example, when I did a substantial refactoring[a] of my code, aside from fixing type errors there were no runtimes errors when the new app was run. This is basically unth
Read the rest
inkable when writing in plain JavaScript. [a]: https://github.com/srid/chronicle/commit/f81d6d9c04e75fbd9e7... Finally, large Elm programs benefit from componentization[x] of the model and related structures (actions, view, request, run). This is something I plan to blog about later on. [x]: https://github.com/rtfeldman/dreamwriter/issues/39
In Understanding Elm

Showing the 15 most recent of 25 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.