前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >eager evaluation (及早求值) & lazy evaluation (惰性求值)

eager evaluation (及早求值) & lazy evaluation (惰性求值)

作者头像
JNingWei
发布2018-09-27 14:37:25
1.8K0
发布2018-09-27 14:37:25
举报
文章被收录于专栏:JNing的专栏

eager evaluation (及早求值)

及早求值,也被称为贪婪求值(greedy evaluation)或严格求值,是多数传统编程语言的求值策略。

在热情求值中,表达式在它被约束到变量的时候就立即求值。这在简单编程语言中作为低层策略是更有效率的,因为不需要建造和管理表示未求值的表达式的中介数据结构。

热情求值的优点在于节省内存和提高执行速度,比如下面的 Basic 代码:

代码语言:javascript
复制
x = 5 + 3 * (1 + 5 ^ 2)
print x
print x + 2

因为第一行代码 x = 5 + 3 * (1 + 5 ^ 2) 执行完成后 x 被赋值并存储为 83,表达式所占用的空间可以立即释放掉,所以节省了内存空间。接下来的两行代码执行时都需要使用 x 的值,此时 x 是可以直接用于运算的数值 83 而不是需要计算的表达式 5 + 3 * (1 + 5 ^ 2),所以减少了一次计算过程,提高了执行效率。

lazy evaluation (惰性求值)

对于惰性求值的编程语言,由于记忆化(memoization)特性,求值过程与之不同。


[1] 及早求值 [2] 惰性求值

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018年04月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • eager evaluation (及早求值)
  • lazy evaluation (惰性求值)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档