[Haskell-cafe] howto tuple fold to do n-ary cross product?

Luke Palmer lrpalmer at gmail.com
Sun Nov 23 14:52:28 EST 2008

2008/11/23 Larry Evans <cppljevans at suddenlink.net>:
> http://www.muitovar.com/monad/moncow.xhtml#list
> contains a cross function which calculates the cross product
> of two lists.  That attached does the same but then
> used cross on 3 lists.  Naturally, I thought use of
> fold could generalize that to n lists; however,
> I'm getting error:

You should try writing this yourself, it would be a good exercise.  To
begin with, you can mimic the structure of cross in that tutorial, but
make it recursive.  After you have a recursive version, you might try
switching to fold or foldM.

The type of the function will not involve tuples, since they can be
arbitrary length (dynamic-length tuples are not supported in Haskell;
we use lists for that).

cross :: [[a]] -> [[a]]


Good luck,

More information about the Haskell-Cafe mailing list