に私は、乱数昇順でそれを注文する方法LISP:昇順
(defvar L '(1 4 2 6 4 3 4 1 9 5))
から成るリストLのリストの順序項目がありますか?
list in ascending order is: L(1 1 2 3 4 4 4 5 6 9)
に私は、乱数昇順でそれを注文する方法LISP:昇順
(defvar L '(1 4 2 6 4 3 4 1 9 5))
から成るリストLのリストの順序項目がありますか?
list in ascending order is: L(1 1 2 3 4 4 4 5 6 9)
(sort L #'<)
または
(sort (copy-list L) #'<)
あなたはその場でL
を変更したくない場合。あなたがソートされたリストを取得し、その後L
使用したい場合は、それを再バインド:
(setf L (sort L #'<))
あなたは '(setf L(sort L# '<))'を意味します。戻り値を変数 'L'に取り込まない場合、' L'はソートされたリストではありません。また、リストのリテラルから 'L 'の値が導き出された場合、質問で与えられた生徒の' defvar'のように、これは未定義の振る舞いです。 – Kaz
@Kazそれは本当に破壊的です。それを指摘してくれてありがとう。 – keyser
@ Kaz:もちろん、出力はどこかに行く必要がありますが、OPは 'L'をリセットする必要はありません。例えば、それらは「ソート」からの結果を関数に渡すことができる。定義されていない動作はどこに文書化されていますか? –
をあなたはこれまでに何がありますか? – Taymon