LISP:按升序对列表中的项目进行排序

Ale*_*lex 1 lisp list

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

(defvar L '(1 4 2 6 4 3 4 1 9 5))
Run Code Online (Sandbox Code Playgroud)

如何按升序排序?

list in ascending order is: L(1 1 2 3 4 4 4 5 6 9)
Run Code Online (Sandbox Code Playgroud)

Fre*_*Foo 5

(sort L #'<)
Run Code Online (Sandbox Code Playgroud)

要么

(sort (copy-list L) #'<)
Run Code Online (Sandbox Code Playgroud)

如果您不想L就地修改.如果您想在L之后使用到达排序列表,请重新绑定它:

(setf L (sort L #'<))
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是:`(setf L(排序L#'<))`.如果你没有将返回值捕获回变量`L`,那么`L`不是排序列表.此外,如果`L`的值来自列表文字,如问题中给出的学生的'defvar`,则这是未定义的行为. (2认同)