用map对一个或者多个list元素操作

这篇博客探讨了如何利用map函数对一个或多个list进行操作,包括两个list元素的if操作,使用lambda表达式处理两个list,从二维表中提取特定列的数据,以及如何构建动态函数应用到list中。还提到了将一维数组转化为二维数组的方法,并展示了newlisp中的FOOP模式应用。
摘要由CSDN通过智能技术生成

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值