List LISP:按升序排列列表中的项目

List LISP:按升序排列列表中的项目,list,lisp,List,Lisp,我有一个由随机数组成的列表 (defvar L '(1 4 2 6 4 3 4 1 9 5)) 如何按升序排列 list in ascending order is: L(1 1 2 3 4 4 4 5 6 9) 到目前为止你有什么?到目前为止你有什么?你的意思是:(setf L(sort L#')@Kaz:当然,输出需要到某个地方,但是OP不需要重置L;例如,他们可以将结果从sort传递到函数。未定义的行为记录在哪里?larsmans:--“sort and stable sort根据谓词

我有一个由随机数组成的列表

(defvar L '(1 4 2 6 4 3 4 1 9 5))
如何按升序排列

list in ascending order is: L(1 1 2 3 4 4 4 5 6 9)

到目前为止你有什么?到目前为止你有什么?你的意思是:
(setf L(sort L#')@Kaz:当然,输出需要到某个地方,但是OP不需要重置
L
;例如,他们可以将结果从
sort
传递到函数。未定义的行为记录在哪里?larsmans:--“sort and stable sort根据谓词函数确定的顺序对序列进行破坏性排序”,除非重新绑定L,否则原始L现在的顺序是不确定的(尽管这可能只是列表的问题,数组应该保持原样)@Vatine:是的,所以如果你想在之后访问
L
,它必须重新绑定,但如果你不再需要它(无可否认,这很奇怪,因为它是使用
defvar
定义的)larsmans:没错。另外,排序常量数据有点不确定,因为编译器可以合并常量。你是说:
(setf L(sort L#’@Kaz:当然,输出需要转到某个地方,但OP不需要重置
L
;例如,他们可以将
sort
的结果传递给函数。未定义的行为记录在哪里?larsmans:-“排序和稳定排序根据谓词函数确定的顺序对序列进行破坏性排序“除非你重新绑定L,否则原来的L现在的顺序是不确定的(虽然这可能只是列表的问题,数组应该保持原样)。@Vatine:对,所以如果你想在以后访问
L
,它必须重新绑定,但如果你不再需要它(无可否认,这很奇怪,因为它是用
defvar
定义的)拉斯曼:没错。另外,对常量数据进行排序有点不确定,因为编译器可以合并常量。
(sort L #'<)
(sort (copy-list L) #'<)
(setf L (sort L #'<))