added flatMap to the combinators
some combinators (inspired by Data.List in Haskell):
intersperse, product, unfoldr, max and min