首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-档案:“Haskell”

-档案:“Haskell”
EN

Stack Overflow用户
提问于 2014-08-25 08:26:06
回答 1查看 92关注 0票数 1

我一直在读我的课本,下面有件事困扰着我:其中一页显示了这样的代码:

代码语言:javascript
复制
-- file: ch02/add.hs
add a b = a + b

然后把它装进ghci。但是,当我输入第一行时,它什么也不做,然后第二行触发一个错误。

我猜这两行意味着我应该创建一个文件并将它们放入其中,然后加载它。但是ghci告诉我它不能识别"--",尽管第二行作为一个函数表现得很好。所以我很困惑:难道不应该"--“指"//”这样的意思吗?我看错教科书了吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-25 08:33:54

首先,加载文件与在ghci中键入行不一样。ghci的工作方式类似于某些do操作的IO块(因此您需要编写let add a b = a + b),而Haskell文件只是包含顶级声明。

FWIW,您可以简单地省略第一行。正如你所注意到的,这只是一个评论。文件中的问题是您编写了而不是

代码语言:javascript
复制
-- file: ch02/add.hs

代码语言:javascript
复制
— file: ch02/add.hs

(您可能使用的是文本编辑器,它将两个连字符合并为em-破折号)。在Haskell中,em-破折号不被认为是一种特殊的符号。实际上,它可以像其他任何补件一样使用:

代码语言:javascript
复制
(—) :: Int -> Int -> Int
a — b = a - b

使用适当的纯文本编辑器或IDE,您应该不会遇到这样的问题,以获得建议see here

票数 12
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25481838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档