Haskell 获得;变量不在范围内:w::Integer;定义“的类型时出错”;w";

Haskell 获得;变量不在范围内:w::Integer;定义“的类型时出错”;w";,haskell,functional-programming,Haskell,Functional Programming,我是Haskell的新手,学习列表理解 [ w :: Integer | x <- [1..10], y <- [1..10], z <- [1..10], w == x*2 + y*2 + z*2, w < 20] [w::Integer | x条件w==x*2+…检查已定义的变量w是否等于x*2+…。如果要在那里定义w,则需要让w=x*2+… [ w :: Integer | x <- [1..10], y <- [1..10], z <- [1

我是Haskell的新手,学习列表理解

[ w :: Integer | x <- [1..10], y <- [1..10], z <- [1..10], w == x*2 + y*2 + z*2, w < 20]

[w::Integer | x条件
w==x*2+…
检查已定义的变量
w
是否等于
x*2+…
。如果要在那里定义
w
,则需要
让w=x*2+…

[ w :: Integer 
| x <- [1..10], y <- [1..10], z <- [1..10], let w = x*2 + y*2 + z*2, w < 20]
[w::Integer

|x条件
w==x*2+…
检查已定义的变量
w
是否等于
x*2+…
。如果要在那里定义
w
,则需要
让w=x*2+…

[ w :: Integer 
| x <- [1..10], y <- [1..10], z <- [1..10], let w = x*2 + y*2 + z*2, w < 20]
[w::Integer

|x
w==x*2+y*2+z*2
没有定义
w
,但是设置了一个包含(未定义的)
w
的等式检查。你的意思是
让w=x*2+y*2+z*2
(如果你想要的公式是毕达哥拉斯公式,你实际上的意思是
让w=x^2+y^2+z^2
w==x*2+y*2+z*2
没有定义
w
,但是设置了一个包含(未定义的)
w
的等式检查。你的意思是
让w=x*2+y*2+z*2
(如果你想要的公式是毕达哥拉斯公式,你实际上的意思是
让w=x^2+y^2+z^2
).有一些问题somewhere@onurcanbektas我只是尝试将上面的内容复制并粘贴到GHCi中,我看不到任何错误。如果有缩进错误,请将其保留在一行上(或将第二行缩进更多)。好的,很显然,我在添加一个“=”.非常感谢你的回答.这里有一些问题somewhere@onurcanbektas我只是尝试将上面的内容复制并粘贴到GHCi中,我看不到任何错误。如果有缩进错误,请将其保留在一行上(或将第二行缩进更多)。好的,很明显,我添加了一个额外的“=”。非常感谢您的回答。