Sorting 按第二个对象对CON列表进行排序
我需要按cdr元素对cons元素列表进行排序。 例如:Sorting 按第二个对象对CON列表进行排序,sorting,lisp,Sorting,Lisp,我需要按cdr元素对cons元素列表进行排序。 例如: (aaa.4 bbb.2 ccc.6 ddd.9 eee.3) => (bbb.2 eee.3 aaa.4 ccc.6 ddd.9) 请帮帮我,我刚开始学习Lisp。这个(aaa.4 bbb.2 ccc.6 ddd.9 eee.3)不是一个消费列表,而是一个名为“aaa.4”,“bbb.2”等的符号列表 你的文章所暗示的是这样的: ((aaa . 4) (bbb . 2) (ccc . 6) (ddd . 9) (ee
(aaa.4 bbb.2 ccc.6 ddd.9 eee.3) => (bbb.2 eee.3 aaa.4 ccc.6 ddd.9)
请帮帮我,我刚开始学习Lisp。这个(aaa.4 bbb.2 ccc.6 ddd.9 eee.3)
不是一个消费列表,而是一个名为“aaa.4”
,“bbb.2”
等的符号列表
你的文章所暗示的是这样的:
((aaa . 4)
(bbb . 2)
(ccc . 6)
(ddd . 9)
(eee . 3))
您可以使用key
参数对列表按某个键进行排序,以sort
:
(sort list #'< :key #'cdr)
(排序列表:键cdr)
。请注意,sort
允许对列表进行加扰;如果原始列表可能不会被销毁,请使用(排序(复制列表):key#'cdr)
。这是一本很棒的入门书,免费下载:
(sort (copy-list list) #'< :key #'cdr)