C9 Lectures: Dr. Ralf Lämmel - Going Bananas

Description

Dr. Ralf Lämmel returns for an exploration of folds, aka bananas. This is lecture 5 in his C9 Lecture series covering advanced functional programming topics. Welcome back, Ralf! We're so happy to have you here!

More to the point, foldr is the Swiss Army Knife in functional programming. Monoidal reductions of lists or mapping over lists and many other list-processing idioms can be modeled with the regular recursion operator foldr. Even a beginning lecture on functional programming would have to discuss foldr. Not discussing foldr in a Haskell course, however, is like not discussing for loops in a C# course. Indeed, the lectures on Graham Hutton's introductory Haskell course covered the basics of foldr very well. However, a lot more interesting stuff concerning folds or, say, bananas becomes apparent when one becomes fluent in functional programming. For instance, foldr and friends suddenly make sense for container types other than the concrete list type. Foldr and friends even generalize to arbitrary algebraic datatypes in different ways. The combination of folds and monoids also helps us understand key aspects of parallel data processing. These are the more advanced banana subjects that are covered by Ralf Lämmel's lecture this time. He has also contributed a stack of bananas papers over the years, and he draws from that interest.

The Discussion

Nice lecture, but I do have a suggestion for Ralf. In approximately the first half of the lecture, I found a few transitions to the next slide or point quite fast. Adding a short pause of a second or so might give the viewer a little bit of room to breathe and process all the information.

Other than that, nice work and I'm looking forward to your next C9 lecture (whenever that may be).