
On Wed, May 30, 2007 at 05:12:48PM +0200, Henk-Jan van Tuyl wrote:
On Wed, 30 May 2007 09:38:10 +0200, Tomasz Zielonka
wrote: On Tue, May 29, 2007 at 09:43:03PM +0100, Andrew Coppin wrote:
Henning Thielemann wrote:
On Sun, 27 May 2007, Andrew Coppin wrote:
But every now and then I discover an expression which is apparently not expressible without them - which is odd, considering they're only "sugar"...
Example?
Until I learned the trick of using lists as monads, I was utterly perplexed as to how to get a Cartesian product
This is far from not expressible: cart xs ys = concatMap (\x -> map ((,) x) ys) xs
A bit simpler is: cart xs ys = [(x, y) | x <- xs, y <- ys]
or: cart xs ys = do x <- xs y <- ys return (x, y)
I was responding to Andrew saying that computing cartesian product is apparently not expressible without list comprehensions. Best regards Tomek