动态做用域和词法做用域

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

符号表的继承即便在词法做用域的语言中也随处可见。全部的内置函数都会被任何的词法空间,命名空间继承。我认为关于这方面的争论让这个问题复杂化,咱们能够用不少方式避免由于语言在这方面的区别产生的不一样。函数

函数内部有静态变量是一个颇有用的语言特性。而函数式语言没有。由于函数式语言的原则是,相同的输入产生相同的输出。既然这样,计算过一次,就能够把结果和参数映射在一块儿,下次调用的时候,就直接输出结果,会大大提升运算的效率。测试

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

函数式语言因为每一个函数都是有固定的输出,那么程序模型就被大大的简化了。任何一个函数都是能够独立测试的单元。惟一要改变的就是处理问题的思路。作用域

相关文章
相关标签/搜索