Oh, that is not a precondition. So the answer of yours are correct. I am working on permutations. I used it in a wrong way.
On Mon, Mar 15, 2010 at 4:39 PM, Daniel Fischer <daniel.is.fisc...@web.de> wrote: > Am Montag 15 März 2010 08:37:20 schrieb Magicloud Magiclouds: >> Sorry, I did not make it clear, since I did not know how to say this >> in technical terms. >> With comprehension, I could get all the possibilities that "draw one >> elem from each list and put them together". But consider this: for >> example, there are two types of pet, dog and cat. And there are two >> persons, him and her. So "how many kinds of matches are there >> (orderless)?" The answer is two: "him with dog and her with cat, him >> with cat and her with dog". So >> f [a, b, c] [d, e, f] [g, h, i] = >> [ [ (a, d, g), (b, e, h), (c, f, i) ] >> , [ (a, d, g), (b, e, i), (c, f, h) ] >> , [ (a, d, h), (b, e, i), (c, f, g) ] >> , [ (a, d, h), (b, e, g), (c, f, i) ] >> , [ (a, d, i), (b, e, g), (c, f, h) ] >> , [ (a, d, i), (b, e, h), (c, f, g) ] >> ... ] >> > > In both, your verbal example and the pseudo-code example, all the groups > have the same number of members (equal to the number of groups, which may > or may not be coincidental). > Is that a precondition, that all groups have the same number of members? > If so, would the desired result for three groups of two members each be > > f3 [a,b] [c,d] [e,f] = > [ [ (a,c,e), (b,d,f) ] > , [ (a,c,f), (b,d,e) ] > , [ (a,d,e), (b,c,f) ] > , [ (a,d,f), (b,c,e) ] > ] > > and for two groups of three members each > > f2 [a,b,c] [d,e,f] = > [ [ (a,d), (b,e), (c,f) ] > , [ (a,d), (b,f), (c,e) ] > , [ (a,e), (b,d), (c,f) ] > , [ (a,e), (b,f) , (c,d) ] > , [ (a,f), (b,d), (c,e) ] > , [ (a,f), (b,e), (c,d) ] > ] > > ? > > In that case, look at Data.List.permutations and the zipN functions. > > -- 竹密岂妨流水过 山高哪阻野云飞 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe