惰性判断是一种判断策略,用于保留对表达式的判断,直到需要其值为止,这样可以避免重复判断, Haskell 是这种函数性编程语言的一个很好的示例,其基础是基于惰性判断。
Unix映射函数中使用了惰性求值,通过仅从磁盘加载所需的页面来提高其性能,剩余的页面将不会分配内存。
它允许语言运行库丢弃不直接与表达式的最终输出链接的子表达式。
它通过丢弃临时计算和条件来降低算法的时间复杂度。
它允许程序员在初始化数据结构后无序访问它们,只要它们没有任何循环依赖。
最适合加载不经常访问的数据。
通过创建 thunks (延迟的对象),它强制语言运行时保留子表达式的求值,直到最终输出中需要它为止。
有时会增加算法的空间复杂度。
很难找到它的性能,因为它在执行之前包含大量表达式。
Python中的 range 方法遵循惰性判断的概念。它节省了较大范围的执行时间,而且我们一次不需要所有值,因此也节省了内存消耗。看下面的示例。
r=range(10) print(r) range(0, 10) print(r[3])
它将产生以下输出-
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 3
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)