[Haskell-cafe] list comprehension doesn't work

Daniel Díaz Casanueva dhelta.diaz at gmail.com
Tue May 14 17:22:15 CEST 2013


You can always write it like this:

listPairs = [ (x,y) | x <- [6 .. 499] ,  y <- [0 .. 1000] , isProduct x ,
isSqrt y , mod y x == 0 ]

So you have the bounds for x and y, and then the conditions. You then need
to define isProduct and isSqrt with types

isProduct :: Int -> Bool
isSqrt :: Int -> Bool

Hopefully, these problems will look easier separately.

Well, it's just an idea.

Good luck,
Daniel Díaz.


On Tue, May 14, 2013 at 4:57 PM, John <knowledge1202 at gmail.com> wrote:

> Hi,
>
> I have to write a function which returns a list of all pairs (x,y) where x,
> y ∈ N AND:
> –  x is the product of two natural numbers (x = a · b, where a, b ∈ N) AND
> –  x is really bigger than 5 but really smaller than 500, AND
> –  y is a squer number (y = c² where c ∈ N) NOT greater than 1000, AND
> –  x is a divisor of y.
>
> My attempt is as follows:
>
> listPairs :: [(Int, Int)]
> listPairs = [(x,y) | x<-[0..], y<-[0..], x<-[0..]*[0..], x > 5, x < 500,
> (y*y) < 1001, mod y x == 0]
>
> However it doesn't work unfortunatly
>
> Could anyone tell me where my mistake is?
>
> Thanks.
>
>
>
> --
> View this message in context:
> http://haskell.1045720.n5.nabble.com/list-comprehension-doesn-t-work-tp5730158.html
> Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>



-- 
E-mail sent by Daniel Díaz Casanueva

let f x = x in x
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20130514/a00c0821/attachment.htm>


More information about the Haskell-Cafe mailing list