博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
动态作用域和词法作用域
阅读量:6157 次
发布时间:2019-06-21

本文共 550 字,大约阅读时间需要 1 分钟。

hot3.png

动态作用域一般是指一个变量在函数内外都能被使用。也就是说,函数调用时,参考的符号表和函数外的符号表是相同的。这种语言解释模型比较简洁,也比较好实现。而词法作用域则需要动态的建立多个符号表。在函数内有独立的符号表。而在每个词法闭包内,也会有一个继承自上层的符号表。所以说,闭包是一种动态作用域的结构。

符号表的继承即使在词法作用域的语言中也随处可见。所有的内置函数都会被任何的词法空间,命名空间继承。我认为关于这方面的争论让这个问题复杂化,我们可以用很多方式避免因为语言在这方面的区别产生的不同。

函数内部有静态变量是一个很有用的语言特性。而函数式语言没有。因为函数式语言的原则是,相同的输入产生相同的输出。既然这样,计算过一次,就可以把结果和参数映射在一起,下次调用的时候,就直接输出结果,会大大提高运算的效率。

函数式语言经常会说:变量是有害的东西,但实际上,在函数式语言中,变量是无处不在的。只是变量是不变的,只能被定义一次。如果内容改变了,就换一个名称好了。

函数式语言由于每个函数都是有固定的输出,那么程序模型就被大大的简化了。任何一个函数都是可以独立测试的单元。唯一要改变的就是处理问题的思路。

转载于:https://my.oschina.net/u/563463/blog/267778

你可能感兴趣的文章
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>
showdialog弹出窗口刷新问题
查看>>
java
查看>>
Vue.js连接后台数据jsp页面  ̄▽ ̄
查看>>
关于程序的单元测试
查看>>
mysql内存优化
查看>>
都市求生日记第一篇
查看>>
Java集合---HashMap源码剖析
查看>>
SQL优化技巧
查看>>
thead 固定,tbody 超出滚动(附带改变滚动条样式)
查看>>
Dijkstra算法
查看>>
css 动画 和 响应式布局和兼容性
查看>>
csrf 跨站请求伪造相关以及django的中间件
查看>>
MySQL数据类型--与MySQL零距离接触2-11MySQL自动编号
查看>>
生日小助手源码运行的步骤
查看>>
Configuration python CGI in XAMPP in win-7
查看>>
bzoj 5006(洛谷 4547) [THUWC2017]Bipartite 随机二分图——期望DP
查看>>
CF 888E Maximum Subsequence——折半搜索
查看>>