[Haskell-cafe] Noob question about list comprehensions

2011-02-16 Thread Tako Schotanus
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


Re: [Haskell-cafe] Noob question about list comprehensions

2011-02-16 Thread Miguel Mitrofanov

 length [c | x - [1..100], let c = chain x, length c  15]

16.02.2011 12:19, Tako Schotanus пишет:

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


Re: [Haskell-cafe] Noob question about list comprehensions

2011-02-16 Thread Stephen Lavelle
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


Re: [Haskell-cafe] Noob question about list comprehensions

2011-02-16 Thread Ozgur Akgun
On 16 February 2011 09:19, Tako Schotanus t...@codejive.org wrote:

 I wondered if there was a way for a guard in a list comprehension to refer
 to the item being produced?



 I'm just wondering about this very specific case


Then, the answer is no.

As others have noted, let binding is the way to go.

Ozgur
___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe


Re: [Haskell-cafe] Noob question about list comprehensions

2011-02-16 Thread Tako Schotanus
Ok, thanks all, that was what I was looking for :)

-Tako


On Wed, Feb 16, 2011 at 10:46, Ozgur Akgun ozgurak...@gmail.com wrote:

 On 16 February 2011 09:19, Tako Schotanus t...@codejive.org wrote:

 I wondered if there was a way for a guard in a list comprehension to refer
 to the item being produced?



 I'm just wondering about this very specific case


 Then, the answer is no.

 As others have noted, let binding is the way to go.

 Ozgur

___
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe