I'm currently using a weird mix of Programming in Haskell and Learn you a Haskell for great good to get some programming exercises.
PiH is far too academic and isn't focussed on learning while LYAH is far to step-by-step to just jump between sections but introduces the syntax of the language in a far better way.
Haskell symbols
:: Type definition (to the right)
: Sequence concatenation
!! Access by array index
I scored badly at the first week's assignment on EDX, but at least it validated that I didn't understand the language of questions even with multiple choice.
Despite the name of the course the first three sessions are really about learning the syntax of Haskell.
I really prefer the let ... in format to the ... where format
TIL that Haskell uses significant whitespace. I remain convinced that it is a pretty good strategy for block demarcation.
Okay so you define an function in the interactive session by using let. That had baffled me for a little while.
If you've done Python list comprehensions then you can take to Haskell's equivalent like a duck to water.
Interestingly just like Python they are also easier to use than combining lambda expressions with things like map and filter.
I think having the backtick notation for prefixing an argument seems nuts, commit to prefix notation FTW
I was starting to get frustrated about the number of parens that were needed on functions (and people complain about LISP) and then I discovered the wonderful point operator (literally .) that allows you to create a partial function chain.