in reply to Functional programming ?

Here is a good introduction to Monads.