Well, my friends, the day has arrived. For thirteen weeks, you have been provided all the conceptual tools to take the leap into the deep end of the functional programming pool and float safely. The great Dr. Erik Meijer has generously given his value time to teach us the fundamentals as delivered by Graham Hutton in his book

Programming in Haskell. Of course, Erik merged his own extensive knowledge, unique perspective and experience into the educational weave: so, you got the best of two worlds. We hope you enjoyed this series, the first in a new a format of Channel 9 content (lectures).



The Channel 9 team and Niner nation thank our dear friend Erik for this stellar contribution to Channel 9 and programming education, generally. Of course, we also thank Graham Hutton for writing the book (and for guest lecturing Chapter 11) that Erik is both so fond of and which provided a basis for these lectures, which, by the way, were all done in true Channel 9 fashion: They were recorded in single takes with Erik doing a brilliant job articulating, contextualizing, expanding on the fundamentals and being, well, Erik, one of our favorite geniuses, all in real time.



In Chapter 13, Equational Reasoning (and also revealing why Erik says 'uhm' and 'you know' so often), the grand finale, Dr. Meijer digs into referential transparency and being able to replace equals by equals in all contexts.

In some sense, the purity inherent in functional languages like Haskell makes it easy to express and implement equational reasoning. In Haskell, our old friend "=" means "is equal to by definition". But what does equational reasoning

mean? It is clear that propositional logic is too weak for many applications and that equational logic is a first step towards a more powerful system*. Is it? Dr. Meijer, please do explain.



Tune in. Enjoy.



* source: http://www.cs.cmu.edu/~cdm/pdf/EquLogic.pdf



Chapter 1

Chapter 2

Chapter 3

Chapter 4

Chapter 5

Chapter 6

Chapter 7

Chapter 8

Chapter 9

Chapter 10

Chapter 11

Chapter 12

Chapter 13