刚开始学习Haskell。

我里面有一个空的源文件:

pe :: (Integral a) => a -> a
pe y = sum [x | x <- [1..y-1], x `mod` 3 == 0 || x `mod` 5 == 0]

现在,如果我这样做,我可以这样叫pe:
*Main> pe 1000
233168

如何从源文件中调用它?如果我有
pe 1000

它返回一个神秘的错误:
GHC stage restriction: `pe'
   is used in a top-level splice or annotation,
   and must be imported, not defined locally
 In the expression: pe 1000

我需要在main或其他内容中声明它吗?

最佳答案

是的,您需要将其连接到main函数。例如,

main = print (pe 1000)

如果要进行多个调用,可以将它们与do -notation结合使用:
main = do
    print (pe 500)
    print (pe 1000)

关于haskell - 在Haskell中调用函数-初学者问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6158769/

10-12 02:20