Fundamentalist functional programmers are really, really lazy. Even more that Ruby programmers, they actually take the DNRY motto to the extreme limit. Whenever they see a pattern repeating in their code, they try to encapsulate it in a reusable abstraction.
The interesting thing about Haskell and other advanced functional languages (http://en.wikipedia.org/wiki/Pure_type_system), is that you can also define abstractions over type constructors (not just over types as with generics in Eiffel, Java, C#, ...).
Once you can do that you suddenly discover design patterns, in the case of this lecture monads, that you did not see before: "Aha, this piece of code is has precisely the same structure as that,".
As with all cool concepts, in programming, it turns out that the mathematicians had long ago already discovered the same thing and called it "monads".
Another favorite hobby of fundamentalist functional programmers is to write programs in so-called "point-free" style, that is, using as few "variables" as possible (http://www.haskell.org/haskellwiki/Pointfree). Ralf might entertain and awe the audience with some Perls (pun intended) in this category in future lectures.
Anyway, this is just a long winded way of saying that all is going on is pattern matching. So don't despair, it is like thoseautosterograms, if you stare at it long enough, you will suddenly see it.
[Hey Channel 9, where is the spell checking in the comments?]
at runtime. The potential of no-pay abstraction is quite enticing. It is like being able to feast on an all-you-can-eat buffet without gaining any weight
What Rx does is provide an interface for the subject/observer pattern in the form of push-based collections, and (b) show that these interfaces form a Monad, and hence you can compose transformations on push-based collections
using the LINQ standard query operators, and (c) prove that the subject/observer pattern is dual to the iterator pattern.
I do believe that computing has inspired beautiful mathematics, for instance
Scott domains and process
algebras to name just a few examples. And I'd argue that computers have become indispensible tools for mathematicians, whether it is to typeset their papers using
LaTex, or to help prove their theorems using Coq for instance.