[Haskell-cafe] Language extensions

Henk-Jan van Tuyl hjgtuyl at chello.nl
Wed May 30 11:12:48 EDT 2007


On Wed, 30 May 2007 09:38:10 +0200, Tomasz Zielonka  
<tomasz.zielonka at gmail.com> 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)

-- 
Met vriendelijke groet,
Henk-Jan van Tuyl


--
http://Van.Tuyl.eu/
--

Using Opera's revolutionary e-mail client:
https://secure.bmtmicro.com/opera/buy-opera.html?AID=789433



More information about the Haskell-Cafe mailing list