这篇文章就是来理解map的语义和实现,使用Scheme、Python、JS三种语言来解释一下这个概念。
map的语义
所谓算子,或者说高阶函数,是指输入或输出中带有函数的一种函数。...一般情况下算子可能指输入中带有函数的情况,而对于输出中带有函数并带有输入参数信息的,我们很多情况下习惯叫闭包。...给个实际的例子:
map带上的参数中,函数是f:x,y->x-y,也就是的得到两个参数的差,带上两个list,分别是[10,9,8]和[1,2,3],则依次将(10,1)、(9,2)、(8,3)传给f...我们还是用刚才的例子,用函数f:x,y->x-y,两个list为[10,9,8]和[1,2,3],我们构造结果第一个数,需要先从[10,9,8]取出第一个元素10,从[1,2,3]中取出第一个元素1,用...再者闭包所封装的数据中不仅仅有各层运算中的list,还需要带有计算层次的信息,因为最终的一次scan的结果得到的并不是函数,而是map的结果了,将计算层次和list形成pair,计算层次每往后算一个list