Haskell错误:“(n + k)模式中的第一个参数必须是变量” - 但是如何?

时间:2012-12-20 21:07:03

标签: haskell

我正在尝试创建一个无限的毕达哥拉斯值列表,但我遇到了一个问题。

pytrips = [(x, y, z) | z <- [1..], y <- [1..z], x <- [1..y],
           (x^2 + y^2) <- z^2, gcd x y == 1]

我的错误如此:

"First argument in (n+k) pattern must be a variable"

我不太明白我为此做了什么语法问题,因为该方法不需要传递任何参数。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:7)

你可能想写==而不是<-

pytrips = [(x, y, z) | z <- [1..], y <- [1..z], x <- [1..y],
           x^2 + y^2 == z^2, gcd x y == 1]