什么是在哈斯克尔做的事情?

时间:2017-06-09 06:50:38

标签: haskell

a=b 

导致

error: Variable not in scope: b

为什么不会发生同样的情况
a=a?

我做了一些测试,计算它的每个函数在计算时都会卡住。

map (+1) a -- outputs nothing before getting stuck
toy x = 'f':x -- outputs "f before getting stuck

并且其他一些人被卡住了。

然而

Prelude> :type a
a :: t

所以a是变量类型的常量,没有约束。据我所知,评估它会导致某种无限循环。

我的猜测是它不断尝试自我,无限地递归。这是正确的,为什么编译时不会导致错误?

0 个答案:

没有答案