gpt4 book ai didi

Lisp排序查询

转载 作者:太空宇宙 更新时间:2023-11-03 19:02:50 25 4
gpt4 key购买 nike

我想对 ((A 4) (B 2) (C 3) (D 5)) 进行排序,使得结果为 ((D 5) (A 4) (C 3) (B 2))。我试过正常的排序技术,但它不适用于子列表。

最佳答案

我从你的问题中猜测你想按每个子列表中的数字排序。排序过程采用名为“key”的关键字参数来指定要排序的内容[ 0 ].在这种情况下,您希望对每个列表的第二个元素进行排序。如果您提供的列表存储在一个名为“xs”的变量中,您将这样做:

(sort xs #'> :key #'second)

请小心,因为排序具有破坏性,所以您可能想要的是:

(sort (copy-list xs) #'> :key #'second)

编辑:如果你想配对元素,你必须编写一个单独的过程来做到这一点。基本版本看起来像这样:

(defun pair (xs)
(if (null xs)
'()
(cons (list (first xs) (second xs))
(pair (rest (rest xs))))))

关于Lisp排序查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25704600/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com