延迟计算(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 

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

技术教程推荐

面试现场 -〔白海飞〕

Spring Boot与Kubernetes云原生微服务实践 -〔杨波〕

架构实战案例解析 -〔王庆友〕

微信小程序全栈开发实战 -〔李艺〕

分布式数据库30讲 -〔王磊〕

手机摄影 -〔@随你们去〕

手把手教你玩音乐 -〔邓柯〕

React Native 新架构实战课 -〔蒋宏伟〕

超级访谈:对话毕玄 -〔毕玄〕

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