nub . concat ? Richard O'Keefe wrote: > > On 14 Jun 2009, at 8:06 pm, Fernan Bolando wrote: > >> Hi all >> >> If I have a number of list >> example >> list1 = [2,3] >> list2 = [1,2] >> list3 = [2,3,4] >> list4 = [1,2,3] >> >> I want to create a list from the list above with n elements, >> non-repeating and each elements index represents 1 of the elements >> from the corresponding list so for the above input I would get. >> >> a = [3,2,4,1] > > I have been staring at this off and on all day, > and I haven't the faintest idea what you want. > > What is "n". What is it that doesn't repeat? > How does the index of an element represent 1 element? > Which list corresponds to what? > > I'm beginning to suspect that what you want is a "choice" > function: > f [s1,...,sn] = [x1,...,xn] > when each xi is an element of the corresponding si > and no two xs are the same. > > Instead of finding one answer, let's find them all. > > all_choices :: Eq a => [[a]] -> [[a]] > all_choices [] = [[]] > all_choices (set:sets) = > [x:xs | xs <- all_choices sets, x <- set, not(x `elem` xs)] > > The test case > > all_choices [[2,3], [1,2], [2,3,4], [1,2,3]] > > has the answer > > [[3,2,4,1], [3,1,4,2], [2,1,4,3]] > > and you probably want to use it something like > > case all_choices sets of > [] -> there are no such choices > (first_choice:_) -> first_choice is one such choice > > For inputs like [[1,2],[2,1],[1]] there is of course no such > choice function. > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe >
-- Tony Morris http://tmorris.net/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe