明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2676|回复: 20

[讨论] 表处理问题

[复制链接]
发表于 2024-9-18 11:44:28 | 显示全部楼层 |阅读模式


表'( (1 2 3)  (4 5 6) (7 8 9) ...) 到
'((1 4 7)   (2 5 8) (3 6 9) ...)有什么简单的写法吗?
发表于 2024-9-18 12:00:41 | 显示全部楼层
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)  (4 5 6) (7 8 9)))
(apply 'mapcar (cons 'list lst))

评分

参与人数 4明经币 +4 收起 理由
VBALISPER + 1 很给力!
Bao_lai + 1 很给力!
yanshengjiang + 1
xyp1964 + 1 赞一个!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-18 16:03:59 | 显示全部楼层
tryhi 发表于 2024-9-18 12:00
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)  (4 5 6) (7 8 9)))
(apply 'mapcar (cons 'lis ...

换个栗子,
(setq lst '(("a" "b" "c" ) ("d" "e" "f")  ("g" "h" "i")))
(apply 'mapcar (cons 'strcat lst))
返回:("adg" "beh" "cfi")

(setq lst '((1 2 3 ) (4 5 6)  (7 8 9)))
(apply 'mapcar (cons '+ lst))
返回:(12 15 18)
这样就清晰了。

评分

参与人数 2明经币 +2 收起 理由
cghdy + 1
tryhi + 1 赞一个!

查看全部评分

回复 支持 1 反对 0

使用道具 举报

发表于 2024-9-19 11:21:43 | 显示全部楼层
376394482 发表于 2024-9-18 16:03
换个栗子,
(setq lst '(("a" "b" "c" ) ("d" "e" "f")  ("g" "h" "i")))
(apply 'mapcar (cons 'strca ...

(cons 'strcat lst)
我觉得比较难理解的是上面这个,居然返回下面这个,为啥那个  '  没了?
(STRCAT ("a" "b" "c") ("d" "e" "f") ("g" "h" "i"))
然后,没有了那个 '  居然也被mapcar识别了!
这个'的消失和显示,对于理解至关重要
发表于 2024-9-18 11:48:26 | 显示全部楼层
(mapcar '(lambda (a b c) (list a b c)) '(1 2 3) '(4 5 6) '(7 8 9))

点评

不是固定三个,题中有省略号  发表于 2024-9-18 12:02
发表于 2024-9-18 14:18:02 | 显示全部楼层
tryhi 发表于 2024-9-18 12:00
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)  (4 5 6) (7 8 9)))
(apply 'mapcar (cons 'lis ...

虽然看不懂,但还是觉得很厉害。
命令: (setq lst '( (1 2 3)  (4 5 6) (7 8 9)(10 11 12)))
((1 2 3) (4 5 6) (7 8 9) (10 11 12))

命令: (apply 'mapcar (cons 'list lst))
((1 4 7 10) (2 5 8 11) (3 6 9 12))
发表于 2024-9-18 19:10:39 | 显示全部楼层
tryhi 发表于 2024-9-18 12:00
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)  (4 5 6) (7 8 9)))
(apply 'mapcar (cons 'lis ...

唉,看样子,我还在LISP大门口徘徊,没有入门。
发表于 2024-9-18 20:58:22 来自手机 | 显示全部楼层
tryhi 发表于 2024-9-18 12:00
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)  (4 5 6) (7 8 9)))
(apply 'mapcar (cons 'lis ...

感觉像是转置
发表于 2024-9-19 08:15:01 | 显示全部楼层
yanshengjiang 发表于 2024-9-18 14:18
虽然看不懂,但还是觉得很厉害。
命令: (setq lst '( (1 2 3)  (4 5 6) (7 8 9)(10 11 12)))
((1 2 3)  ...


(apply 'mapcar(cons '+ '((1 2 3 )(4 5 6)(7 8 9)(17 28 39))))
返回:(29 43 57)
1+4+7+17=29
2+5+8+28=43
3+6+9+39=57
我这个菜鸟在慢慢领悟!
发表于 2024-9-19 08:16:14 | 显示全部楼层
本帖最后由 寒潮大冬瓜 于 2024-9-19 08:44 编辑

命令: (apply 'mapcar(cons '+ '((1 2 3 )(4 5 6)(7 8 9)(17 28 39))))
(29 43 57)
命令: (apply 'mapcar(cons '- '((1 2 3 )(4 5 6)(7 8 9))))
(-10 -11 -12)
命令: (apply 'mapcar(cons '* '((1 2 3 )(4 5 6)(7 8 9))))
(28 80 162)
命令: (apply 'mapcar(cons '/ '((1027 2031 3036 )(4 5 6)(7 8 9))))
(36 50 56)
命令: (apply 'mapcar(cons '/ '((1027 2031 3036 )(41 51 62)(7 8 9))))
(3 4 5)
命令: (apply 'mapcar(cons '/ '((1027 2031 3036 )(41 51 62)(71 82 91))))
(0 0 0)

除法→似乎→不能有小数点?

点评

(apply 'mapcar(cons '/ '((1027. 2031. 3036. )(41 51 62)(71 82 91))))  发表于 2024-9-19 09:09
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-12-21 22:45 , Processed in 0.186786 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表