放松一下,出个有关表转换的题目:

2009-06-20 11:59:45 PM

放松一下,出个有关表转换的题目:

更多相关内容请访问"CAD家园论坛",万人专家团为您在线答疑!


如何进行数组处理.如
表1 '(x1 x2 x3) 表2'(y1 y2 y3)
转换为 '(x1y1 x1y2 x1y3 x2y1 x2y2 x2y3 x3y1 x3y2 x3y3)
或者依次执行 以上表中每个元素也可以.
x1y1 即(* x1 y1)
谁能用最简洁有效的方法写出来?



(setq lstn '())
什么意思?
返回值是nil


先设一个空表,可以去掉!


(setq L1 '(1 2 3)
L2 '(4 5 6)
)
(mapcar '* L1 L2)


zhynt 的方法对头.
上贴返回: (4 10 18) 不是要求的结果


命令: (setq a '(1 2 3)b'(4 5 6))
(4 5 6)

命令: (mapcar '(lambda(x)(mapcar '(lambda(y)(* x y))b))a)
((4 5 6) (8 10 12) (12 15 18))

命令: (apply 'append(mapcar '(lambda(x)(mapcar '(lambda(y)(* x y))b))a))
(4 5 6 8 10 12 12 15 18)



还是两个foreach 少敲几个字符


(foreach x a(foreach y b (setq li(append li (list(* x y))))))

(apply 'append(mapcar '(lambda(x)(mapcar '(lambda(y)(* x y))b))a))

而中间过程比较常用:
(mapcar '(lambda(x)(mapcar '(lambda(y)(* x y))b))a)

(reerse(foreach x a(foreach y b(setq li(cons(list x y) li))))

0 条评论:

发表评论

订阅 帖子评论 [Atom]

<< 主页

0.015043973922729