map是一种很重要的结构,不仅因为它代表了一种公共模式,而且因为它建立起了一种处理表的高层抽象。在scale-list原来的定义里,程序的递归结构将人的注意力吸引到对于表中逐个元素的处理上。通过map定义scale-list抑制了这种细节层面上的情况,强调的是从元素表到结果表的一个缩放变换。这两种定义形式之间的差异,并不在于计算机会执行不同的计算过程(其实不会),而在于我们对这同一个过程的不同思考方式。从作用上看,map帮我们建起了一层抽象屏障,将实现表变换的过程的实现,与如何提取表中元素以及组合结果的细节隔离开。
这不,现在舒服多了。。。