Sorry about this comment, but I don't think you achieved what you wanted with this article. It's a bit rambling and unfocused, and you don't really ever talk to your audience in language they will understand without a prior background in functional programming. Case in point: there's plenty of Haskell, but the first Ruby is 3/4 of the way down. It would be more effective if you took one or two concepts in Haskell and explained them in detail, starting with Ruby.