确认懒惰的评价

时间:2013-03-21 21:15:54

标签: haskell lazy-evaluation

我不小心删了我的帖子,但是我正在重新提出这个问题以便澄清。

如果我有一个功能:
const x = 1

如果我问哈斯克尔:
const (1/0)

它将返回1,因为延迟评估实际上并不计算1/0是什么,对吧?它不需要。

1 个答案:

答案 0 :(得分:8)

是的,没错。正如您所定义的那样,const在评估时始终会生成1 - 无论参数是什么。由于参数与结果无关,因此不进行评估。因此,不会发生因评估参数而导致的任何错误或非终止。