Might better ways, but the following work: length [c | x <- [1..100], let c = chain x , length c > 15] length [c | x <- [1..100], c <- [chain x] , length c > 15]
On Wed, Feb 16, 2011 at 9:19 AM, Tako Schotanus <t...@codejive.org> wrote: > Hello, > > I was going through some of the tuturials and trying out different > (syntactic) alternatives to the given solutions and I I got to this line: > > *length [chain x | x <- [1..100] , length (chain x) > 15]* > > Now, there's nothing wrong with it, it works of course. But the application > of chain x is repeated twice and I wondered if there was a way for a guard > in a list comprehension to refer to the item being produced? > > Like this for example (invented syntax): > > *length [@c(chain x) | x <- [1..100] , length c > 15]* > > NB: Just to make clear, I'm not asking if there is an alternative way of > preventing the repetition, of course there is, I'm just wondering about this > very specific case within list comprehensions. > > -Tako > > > _______________________________________________ > Haskell-Cafe mailing list > Haskell-Cafe@haskell.org > http://www.haskell.org/mailman/listinfo/haskell-cafe > >
_______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe