2012-03-27 24 views
1

に私は、乱数昇順でそれを注文する方法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) 
+0

をあなたはこれまでに何がありますか? – Taymon

答えて

4
(sort L #'<) 

または

(sort (copy-list L) #'<) 

あなたはその場でLを変更したくない場合。あなたがソートされたリストを取得し、その後L使用したい場合は、それを再バインド:

(setf L (sort L #'<)) 
+2

あなたは '(setf L(sort L# '<))'を意味します。戻り値を変数 'L'に取り込まない場合、' L'はソートされたリストではありません。また、リストのリテラルから 'L 'の値が導き出された場合、質問で与えられた生徒の' defvar'のように、これは未定義の振る舞いです。 – Kaz

+0

@Kazそれは本当に破壊的です。それを指摘してくれてありがとう。 – keyser

+0

@ Kaz:もちろん、出力はどこかに行く必要がありますが、OPは 'L'をリセットする必要はありません。例えば、それらは「ソート」からの結果を関数に渡すことができる。定義されていない動作はどこに文書化されていますか? –