On Tue, Oct 10, 2006 at 08:58:05AM -0400, Lennart Augustsson wrote: > >a function that takes two lists and decides whether one of them is > >finite or not , without being given further information on the lists, > >does not exist. > > A function that takes two lists and decides if one is finite does > indeed exist. But if both are infinite you'll get partial > information out. > > The example > shorter [1..5] (shorter [2..] [3..]) > is a little tricky, but certainly doable.
right, my implementation wouldn't cover this case. i was meaning termination, though: if a function accepts two possibly infinte lists, it cannot unconditionally return with the shorter one. i think the best you can do is Hennings solution (and mine, but i was too slow :) that hits bottom once you touch any element in (shorter [2..] [3..]), instead of merely the lengths of its prefices. matthias _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe