Emacs - sort - 初期リストを変更する副作用の有用性[クローズド]


1

関数の副作用の有用性はありますか sort、初期リストを変更しますか?変更されたリストはの結果とは異なります sort

(let* (
    (initial-list '(3 2 4 1))
    (sorted-list (sort initial-list '<)))
  (cons initial-list (list sorted-list)))

それは機能にとって良くないでしょうか sort 内部的に次のようなものを使う copy-list 初期リストが変更されないように?


編集 :Emacsタグを監視するコミュニティが superuser.com 私はこの質問に答えることに無関心を表明しています(例えばそれを閉じるために投票することによって)、私はこの問題に関する新しいEmacsバグレポートを作成しました:

http://debbugs.gnu.org/cgi/bugreport.cgi?bug=18837


1
あなたは新しい質問にこの質問をして答えるべきです Emacsスタック交換サイト
Luke

回答:


1

関数 sort 初期リストは使い捨てであり、それは使用不可能な状態で前記リストを残すと仮定します。以下は、初期リストを無傷のままにする回避策です。

(defun lawlist-sort (seq predicate)
  (let ((disposable-list (copy-list seq)))
    (sort disposable-list predicate)))
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.