在常见的lisp中对子列表进行排序

时间:2013-03-22 00:42:22

标签: sorting lisp common-lisp sublist

非常简单

使用此(sort L #'> :key #'second)),我可以排序,(((C) 1) ((D) 1) ((E) 1) ((F) 1) ((G) 1) ((H) 1) ((B) 3) ((A) 8))

但现在我要排序,((((A) 8)) (((B) 3)) (((C) 1)) (((D) 1)) (((E) 1)) (((F) 1)) (((G) 1)) (((H) 1)))

我需要做些什么,(sort L #'> :key #'second))才能让第二个列表排序?

1 个答案:

答案 0 :(得分:6)

我希望我能正确理解你的问题。

您需要的是:key (lambda (x) (second (car x)))

但是,you do not even need lambda

(cadar '(((A) 8)))
==> 8

所以:key #'cadar是你的朋友。