为什么我不能在GHCi中定义类型?

3
为什么我不能在GHCi中定义类型?
Prelude> data MyBool = T | F

<interactive>:1:0: parse error on input `data'

2
无法在GHCi中定义新类型的原因是,GHCi只允许定义值和函数,而不允许定义类型。要定义新类型,您需要将其放入模块中,并使用文件名作为模块名称,然后在GHCi中导入该模块。 - Boris
1个回答

5
GHCi是一个非常简单的REPL,它读取表达式并打印结果(通常),可以想象为交互式do表达式。允许使用一般的Haskell结构的问题是:(a)如何将它们合并到已加载的程序中,(b)当重新加载或其他重置REPL状态的操作时该如何处理它们。此外,还有关于与已定义的内容冲突时该怎么做的问题。此外,目前的实现仅是一个表达式求值器,而编译新代码则会涉及更多复杂的事情。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接