不以惰性语言终止的算法

rwa*_*ace 26 functional-programming lazy-evaluation

根据http://www.reddit.com/r/programming/comments/gwqa2/the_real_point_of_laziness/c1rslxk

有些算法并不是以一种急切的语言终止,而是以懒惰的方式终止,(对我来说,这是一种轻微的震惊),反之亦然.

前者当然是众所周知的,但后者让我感到震惊,如果是真的,那将远远超过一个温和的震撼.

有谁知道一种算法以一种渴望的语言终止而不是一种懒惰的语言?

Jul*_*les 11

维基百科为lambda演算回答了这个问题:Lambda微积分减少策略

关键部分是:

适用订单不是规范化策略.[...]相反,正常的顺序是这样称呼的,因为如果存在正常的顺序,它总是会发现正常化的减少.

这显示了延迟评估的更强大的属性:如果存在使特定程序终止的评估策略,则程序也以惰性评估终止.因此,特别是严格的评估(应用顺序)不允许任何程序在延迟评估下终止该循环.

维基百科页面上的参考文献提供了证据.