map是一个非常好用的功能,先举个简单的例子
两个list元素的操作
(map + '(1 2 3) '(50 60 70)) → (51 62 73)
两个list元素的if操作
(map if '(true nil true nil true) '(1 2 3 4 5) '(6 7 8 9 10))
→ '(1 7 3 9 5)
这个有点意思,相当与用一堆bool值来确定是从第一个list中挑选元素,还是从第二个list中挑选。然后组成新的list.
将lambda表达式用于两个list
(map (fn (x y) (* x y)) '(3 4) '(20 10))
→ (60 40)
提取二维表中的某个列所有的数据
这个语法非常实用,现在就展现社区里面rickybody的一段代码:
(new Class 'Node)
(set 'l (list (Node "A" 'happy)
(Node "B" 'sad)
(Node "C" 'happy)
(Node "D" 'indifferent)
(Node "E" 'surly)
(Node "F" 'happy)
(Node "G