我一直在读我的课本,下面有件事困扰着我:其中一页显示了这样的代码:
-- file: ch02/add.hs
add a b = a + b然后把它装进ghci。但是,当我输入第一行时,它什么也不做,然后第二行触发一个错误。
我猜这两行意味着我应该创建一个文件并将它们放入其中,然后加载它。但是ghci告诉我它不能识别"--",尽管第二行作为一个函数表现得很好。所以我很困惑:难道不应该"--“指"//”这样的意思吗?我看错教科书了吗?
谢谢。
发布于 2014-08-25 08:33:54
首先,加载文件与在ghci中键入行不一样。ghci的工作方式类似于某些do操作的IO块(因此您需要编写let add a b = a + b),而Haskell文件只是包含顶级声明。
FWIW,您可以简单地省略第一行。正如你所注意到的,这只是一个评论。文件中的问题是您编写了而不是。
-- file: ch02/add.hs但
— file: ch02/add.hs(您可能使用的是文本编辑器,它将两个连字符合并为em-破折号)。在Haskell中,em-破折号不被认为是一种特殊的符号。实际上,它可以像其他任何补件一样使用:
(—) :: Int -> Int -> Int
a — b = a - b使用适当的纯文本编辑器或IDE,您应该不会遇到这样的问题,以获得建议see here。
https://stackoverflow.com/questions/25481838
复制相似问题