延迟计算(Lazy)

延迟计算(Lazy) 首页 / 函数式入门教程 / 延迟计算(Lazy)

惰性判断是一种判断策略,用于保留对表达式的判断,直到需要其值为止,这样可以避免重复判断, Haskell 是这种函数性编程语言的一个很好的示例,其基础是基于惰性判断。

Unix映射函数中使用了惰性求值,通过仅从磁盘加载所需的页面来提高其性能,剩余的页面将不会分配内存。

懒惰判断-优势

  • 它允许语言运行库丢弃不直接与表达式的最终输出链接的子表达式。

  • 它通过丢弃临时计算和条件来降低算法的时间复杂度。

  • 它允许程序员在初始化数据结构后无序访问它们,只要它们没有任何循环依赖。

  • 最适合加载不经常访问的数据。

    无涯教程网

懒惰判断-缺点

  • 通过创建 thunks (延迟的对象),它强制语言运行时保留子表达式的求值,直到最终输出中需要它为止。

  • 有时会增加算法的空间复杂度。

  • 很难找到它的性能,因为它在执行之前包含大量表达式。

Python惰性判断

Python中的 range 方法遵循惰性判断的概念。它节省了较大范围的执行时间,而且我们一次不需要所有值,因此也节省了内存消耗。看下面的示例。

r=range(10) 
print(r) 
range(0, 10) 
print(r[3]) 

它将产生以下输出-

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 
3 

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

大规模数据处理实战 -〔蔡元楠〕

分布式系统案例课 -〔杨波〕

如何看懂一幅画 -〔罗桂霞〕

如何读懂一首诗 -〔王天博〕

自动化测试高手课 -〔柳胜〕

零基础学Python(2023版) -〔尹会生〕

Vue 3 企业级项目实战课 -〔杨文坚〕

运维监控系统实战笔记 -〔秦晓辉〕

云原生基础架构实战课 -〔潘野〕

好记忆不如烂笔头。留下您的足迹吧 :)