嵌套让haskell混淆语法

时间:2015-08-22 02:58:16

标签: haskell let

main = let sumSquares = sum (map (^2) [1..100]) 
           squaredSum = sum [1..100] ^ 2 
           in sumSquares - squaredSum

Haskell的新手,所以我一直在回顾Project Euler。我知道我的解决方案是合理的,当我不打扰任何让它时,它会起作用。

出于某种原因,这给了我一条错误信息。你能帮我吗?谢谢!

1 个答案:

答案 0 :(得分:3)

您已选择为此术语main命名,但未指定正确的类型。带有main术语的Haskell模块应该使用IO ()类型定义它,但是由于Num a => a,您已经为它指定了类似-的表达式发生此错误是因为Haskell正在寻找某种方法使IO ..成为Num的实例,但它不是。

尝试将其命名为其他内容。