Emacs - sort - utilidade da modificação do efeito colateral da lista inicial [closed]

1

Existe alguma utilidade do efeito colateral da função sort , que modifica a lista inicial? A lista modificada é diferente do resultado de sort :

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

Não seria melhor para a função sort usar internamente algo semelhante a copy-list para que a lista inicial não seja alterada?

EDIT : Como a comunidade que monitora a tag Emacs de superuser.com expressou um desinteresse em responder a essa pergunta (por exemplo, ao votar para fechá-la), criei um novo relatório de bug do Emacs sobre esta questão:

link

    
por lawlist 25.10.2014 / 19:10

1 resposta

1

A função sort assume que a lista inicial é descartável e deixa a lista em um estado incomum. A seguir, uma solução alternativa que deixa a lista inicial ilesa:

  
(defun lawlist-sort (seq predicate)
  (let ((disposable-list (copy-list seq)))
    (sort disposable-list predicate)))
    
por 26.10.2014 / 19:24

Tags