小编Mor*_*o G的帖子

Haskell 实例:这怎么可能是一些有效的代码?

在我编写 Show 实例的一个小例子时,我犯了一个缩进错误:

module Main where

data B= B0|B1 

instance Show B where
show B0="0"
show B1="1"


main=print B0
Run Code Online (Sandbox Code Playgroud)

显然,工作代码是:

module Main where

data B= B0|B1 

instance Show B where
    show B0="0"
    show B1="1"


main=print B0
Run Code Online (Sandbox Code Playgroud)

我原以为第一个会出现编译错误,但我可以运行它,结果是:

example.hs: stack overflow

为什么这段代码甚至可以编译?

另外,为什么这只是运行时错误(如果堆栈不受约束,则会填满您的 RAM)而不是编译错误?

haskell

5
推荐指数
2
解决办法
85
查看次数

标签 统计

haskell ×1