-
All You Need Is Lambda
- Not recommended for a first introduction to functional programming. Most people wouldn't have an idea on what this really is.
- But it is not a bad idea to convince people that "Computation by rewriting" really works
- Maybe worthwhile to give examples of other esoteric turing complete systems
-
The following chapters are rather essential:
- Hello, Haskell!
- Basic Datatypes
- Types
- Typeclasses
- More Functional Patterns
- Recursion
- Lists
- Strings should be seen as a part of lists. I do not agree with the order in the book
- Folding Lists
- Algebraic Datatypes
- It's worth briefly introducing kinds.
- Might be worthwhile explaining the algebra of algebraic datatypes
- Signaling Adversity
-
These chapters can be omitted. Or, we could just email related content to the students as optional reading material.
- Building Projects
- Testing
- Basic Libraries
-
It might be worthwhile introducing these ideas in one or two lectures.
- Monoid
- Optionally, semigroup
- Functor
- Optionally, applicative
- Monad
- Monoid
-
Given that the students have been already exposed to data structures with certain laws, we do not necessarily need:
- Applying Structure
- Foldable
- Traversable
-
I am not very familiar with these, but I think we can leave them out
- Reader
- Parser Combinators
- Composing Types
- Monad Transformers
-
These chapters would familiarise the student with how Haskell is used for more real world applications. I recommended a brief introduction to them:
- State
- IO
-
Non-Strictness
- This is rather important. Some aspects of it like lazy evaluation, the
seqfunction and bang patterns are central to Haskell. - However, we do not need to cover this in great detail.
- This is rather important. Some aspects of it like lazy evaluation, the
Last active
July 21, 2017 04:55
-
-
Save Agnishom/e17f224c485206463a6e0026b4666ddd to your computer and use it in GitHub Desktop.
PRGH 2017
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment