diff --git a/haskell/README.md b/haskell/README.md new file mode 100644 index 0000000..b0147d7 --- /dev/null +++ b/haskell/README.md @@ -0,0 +1,40 @@ +

+Haskell +

+ +# Introduction +After miserably failing my Functional Programming exam and some soul searching, I realized that I never really learned Haskell nor did I ever really understand functional programming. So, I decided to learn Haskell properly. This repository will document my journey in learning Haskell. + +With the help of some friends! + +This is going to be structured in a different way than my other repositories. I will have a `sessions` folder where I will document my thought process and the things I learned while during my "lessons". Maybe do Haskell notebooks? I don't know yet. + +This is the larger, more general README, which will house the main takeaways/revelations of the sessions. + +## ToC +- [Introduction](#introduction) + - [ToC](#toc) +- [Books and resources](#books-and-resources) + - [13th of March - Introduction](#13th-of-march---introduction) + +# Books and resources +- [Haskell Programming from first principles](http://haskellbook.com/) +- [Learn you a Haskell for great good](http://learnyouahaskell.com/) + + +## [13th of March - Introduction](sessions/13_03/notes.md) + +Big question: + +> Why is the singly-linked list the most common data structure in functional programming? + +Because it is the simplest recursive data structure. It is a recursive data structure because it is defined in terms of itself. It is a singly-linked list because it has a head and a tail. The head is the first element of the list and the tail is the rest of the list. + +

+ lists +

+ +> But why not a tree? + +The tree is simply too complex. Linked lists are easy. +