cartesian xs ys = map (\[x,y] -> (x,y)) $ sequence [xs,ys]
On 04/02/06, Jan-Willem Maessen <[EMAIL PROTECTED]> wrote: > > On Feb 4, 2006, at 1:31 PM, Jon Fairbairn wrote: > > ... > > There ought to be a list_product somewhere (I mean [1..] > > `list_product` [4..] == > > [(1,4),(2,4),(1,5),(3,4),(2,5),(1,6),...]). Is there? > > Not that I know of, but here's one which handles finite lists > correctly; it'd be a nice addition to Data.List: > > dzip :: [a] -> [b] -> [(a,b)] > dzip = dzipWith (,) > > dzipWith :: (a -> b -> c) -> [a] -> [b] -> [c] > dzipWith f [] ys = [] > dzipWith f as [] = [] > dzipWith f as (y:ys) = dzipK ys [y] > where dzipK (b:bs) rbs = > zipWith f as rbs ++ dzipK bs (b : rbs) > dzipK [] rbs = dzipT as > where dzipT ys@(_:yt) = zipWith f ys rbs ++ dzipT yt > dzipT [] = [] > > -Jan-Willem Maessen > > > > > Jón > > > > -- > > Jón Fairbairn Jon.Fairbairn at > > cl.cam.ac.uk > > > > > > _______________________________________________ > > Haskell-prime mailing list > > Haskell-prime@haskell.org > > http://haskell.org/mailman/listinfo/haskell-prime > > _______________________________________________ > Haskell-prime mailing list > Haskell-prime@haskell.org > http://haskell.org/mailman/listinfo/haskell-prime > _______________________________________________ Haskell-prime mailing list Haskell-prime@haskell.org http://haskell.org/mailman/listinfo/haskell-prime