我很不明白为什么,一个可以作参数传递的,含有自由变量的函数 叫闭包。
例如 set.foreach(println (x:Int)) ,,println(x:Int)被叫做闭包
表示对集合set中所有元素调用println ,打印之(伪代码)
如果函数的 前域(参数的取值集合)是A(这里没有参数),值域是B(打印的序列集合), 整个函数是 集合AUB上的二元关系 R, println(x:Int) 记为S。
S究竟是什么的闭包。如果是 R 的闭包,那是什么闭包,传递,自反,对称,都不像阿。还是根本的,这个闭包的概念不是关系运算中的概念
例如 set.foreach(println (x:Int)) ,,println(x:Int)被叫做闭包
表示对集合set中所有元素调用println ,打印之(伪代码)
如果函数的 前域(参数的取值集合)是A(这里没有参数),值域是B(打印的序列集合), 整个函数是 集合AUB上的二元关系 R, println(x:Int) 记为S。
S究竟是什么的闭包。如果是 R 的闭包,那是什么闭包,传递,自反,对称,都不像阿。还是根本的,这个闭包的概念不是关系运算中的概念
在JavaScript中闭包的优点比较明显。在了解javascript的基础上你再看2楼的解释才有体会以scala来看,print(x: Int)好像不能称之为闭包吧,只是一个函数调用。
http://www.ibm.com/search/csass/search/?q=%E9%97%AD%E5%8C%85&dws=cndw&ibm-submit=&sn=dw&lang=zh&cc=CN&ddr=&en=utf&lo=zh&hpp=20