我发现Lazy
并且Inf
非常接近:
Lazy 和 Inf 密切相关(实际上底层实现使用相同的类型)。实践中的唯一区别是整体检查,其中 Lazy 被擦除(即,正常检查术语是否终止,忽略惰性注释),而 Inf 使用生产力检查器,其中任何使用 Delay 都必须受到构造函数的保护。
如上所述,Lazy
和的底层实现Inf
是相同的,唯一的区别是关于整体检查。
我认为 always useInf
看起来更自然,这更接近我们在 Haskell 中使用的 lazy,并且想知道我们必须使用的生产场景是什么Lazy
——它总是做深度的整体检查?