From personal experience, I can say, Haskell is pretty difficult to learn. This is the project that has helped it click for me:
sdiehl / write-you-a-haskell
Building a modern functional compiler from first principles. (http://dev.stephendiehl.com/fun/)
Building a modern functional compiler from first principles.
Read Online:
Releases
This is a work in progress.
- Chapter 1: Introduction
- Chapter 2: Haskell Basics
- Chapter 3: Parsing
- Chapter 4: Lambda Calculus
- Chapter 5: Type Systems
- Chapter 6: Evaluation
- Chapter 7: Hindley-Milner Inference
- Chapter 8: Design of ProtoHaskell
- Chapter 9: Extended Parser
- Chapter 10: Custom Datatypes
- [Chapter 11: Renamer] (http://dev.stephendiehl.com/fun/010_renamer.html)
- Chapter 12: Pattern Matching & Desugaring
- Chapter 13: System-F
- Chapter 14: Type Classes
- Chapter 15: Core Language
- Chapter 16: Kinds
- Chapter 17: Haskell Type Checker
- Chapter 18: Core Interpreter
- Chapter 19: Prelude
- Chapter 20: Design of Lazy Evaluation
- Chapter 21: STG
- Chapter 22: Compilation
- Chapter 23: Design of the Runtime
- Chapter 24: Imp
- Chapter 25: Code Generation ( C )
- Chapter 26: Code Generation ( LLVM )
- Chapter 27: Row Polymorphism & Effect Typing
- Chapter 28: Future Work
Building
To generate the build scripts provision…
I've always been interested in how languages work and I've been trying to learn Haskell when I can find the time. So far, I've been pretty unsuccessful, but this project has really opened my eyes to the secrets of Haskell.
If you've got any interest in either languages or Haskell, I've gotta recommend this great resource.
Top comments (7)
Looks good...👍 Seems to also be a W.I.P with much more to come.
Additionally, take a look at:
"Learn You a Haskell for Great Good!"
learnyouahaskell.com/chapters
...you may also find that of — great good — to you.
Learn You a Haskell for Great Good is a wonderful resource. Some people struggle with it, but it's worth trying if you really want to learn!
A good friend introduced it to me many moons ago... At said time I struggled with it ("the functional way") — but now I am at peace with it. Syntactically it was hard to get my head around, let alone the "purity".
I always believe and encourage those (especially whom focus mostly in the web-space, i.e. PHP, JavaScript and similarly related languages) to branch out, if not for anything else but the perspective you will gain, which will compliment you as a developer and very likely broaden your ability to reason-about and solve problems all the while improving your code (e.g. such languages give you good insight into pure-functions, SRP and much more that you'll end up bringing into your core day-to-day stack).
So throw a bit of Go, Rust, Crystal, Python [too many good ones to name] into the mix 👌
PS. looks like said fellow has another good resource you'd also like:
"What I Wish I Knew When Learning Haskell"
github.com/sdiehl/wiwinwlh
...the gift that keeps on giving 😂
Wow! This is awesome! Thank you for sharing!! :D
Sure thing! Hope you find it useful :)
Thank you mate, I just started to learn Functional Programming for a course and Haskell is my current challenge. This I hope helps me get through it.