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

apfelmus apfelmus at quantentunnel.de
Mon Nov 24 11:37:40 EST 2008


Luke Palmer wrote:
> Larry Evans wrote:
>>
>> 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:
> 
> 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]]
> 
> ....

This is the  sequence  function from Control.Monad.

  cross :: [[a]] -> [[a]]
  cross = sequence

  > cross [[1,2],[3,4]]
  [[1,3],[1,4],[2,3],[2,4]]



Regards,
apfelmus



More information about the Haskell-Cafe mailing list