表处理问题
表'( (1 2 3)(4 5 6) (7 8 9) ...) 到
'((1 4 7) (2 5 8) (3 6 9) ...)有什么简单的写法吗?
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)(4 5 6) (7 8 9)))
(apply 'mapcar (cons 'list lst)) 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)
这样就清晰了。 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识别了!
这个'的消失和显示,对于理解至关重要 (mapcar '(lambda (a b c) (list a b c)) '(1 2 3) '(4 5 6) '(7 8 9)) 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)) tryhi 发表于 2024-9-18 12:00
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)(4 5 6) (7 8 9)))
(apply 'mapcar (cons 'lis ...
唉,看样子,我还在LISP大门口徘徊,没有入门。 tryhi 发表于 2024-9-18 12:00
一个经典的语句,能读懂就算入门了
(setq lst '( (1 2 3)(4 5 6) (7 8 9)))
(apply 'mapcar (cons 'lis ...
感觉像是转置 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: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)
除法→似乎→不能有小数点?
页:
[1]
2