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.