Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 在Common Lisp中对列表进行排序_List_Sorting_Character_Common Lisp_Alphabetical Sort - Fatal编程技术网

List 在Common Lisp中对列表进行排序

List 在Common Lisp中对列表进行排序,list,sorting,character,common-lisp,alphabetical-sort,List,Sorting,Character,Common Lisp,Alphabetical Sort,我正在尝试编写一些函数来对此类列表进行排序: ((1a)(2e)(4d)) 我在Common Lisp中找到了内置函数sort,但我无法执行我想要的操作。 结果应该是: '((1 A) (4 D) (2 E)) 我想按每个列表的第二个元素按字母顺序对列表进行排序 这就是我所做的: (sort '((1 A) (4 D) (2 E)) #'char-lessp :key #'second) 无论如何,我会理解如何使用:key'对具有特定函数的列表进行排序 谢谢。您应该使用: (sort '((

我正在尝试编写一些函数来对此类列表进行排序:

((1a)(2e)(4d))

我在Common Lisp中找到了内置函数sort,但我无法执行我想要的操作。
结果应该是:

'((1 A) (4 D) (2 E))
我想按每个列表的第二个元素按字母顺序对列表进行排序

这就是我所做的:

(sort '((1 A) (4 D) (2 E)) #'char-lessp :key #'second)
无论如何,我会理解如何使用:key'对具有特定函数的列表进行排序

谢谢。

您应该使用:

(sort '((1 A) (4 E) (2 D)) #'string<= :key #'second)
请注意,字符串上的比较运算符有两个版本,用于区分大小写和不区分大小写的比较:

CL-USER> (string= "a" "A")
NIL
CL-USER> (string-equal "a" "A")
T
CL-USER> (string= 'a "a")
NIL
CL-USER> (string-equal 'a "a")
T
CL-USER> (string= "a" "A")
NIL
CL-USER> (string-equal "a" "A")
T
CL-USER> (string= 'a "a")
NIL
CL-USER> (string-equal 'a "a")
T