When Linq was first announced almost every developer got it. Writing queries over data is our bread and butter. How much easier it is to declare queries, than writing imperative For loops with lots of temporary variables (*shiver*).
But when Rx came around only a couple of academics and a handful of super geeks got it. They said that “Rx is the mathematical dual of the IEnumerable, bla, bla…”
This is where the brain wrapping comes in. Most developers are building sequential deterministic machines (or are trying too), using code to glue it all together. With Rx it is all about reactive programming. Instead of calling methods synchronously and wait for a response, reactive programming is all about events, don’t-ask-but-tell-principle and pub/sub.
After watching this Roman Numerals Kata I was inspired to write the same algorithm in Scheme/Lisp, but one thing let to another and before I knew I had a couple of libraries, unit tested and all.
Download the files here.