auctex-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [AUCTeX-devel] Re: [AUCTeX-diffs] Changes to reftex/lisp/reftex-base


From: Ralf Angeli
Subject: Re: [AUCTeX-devel] Re: [AUCTeX-diffs] Changes to reftex/lisp/reftex-base.el, v
Date: Sat, 07 Jun 2008 14:28:33 +0200

* David Kastrup (2008-06-07) writes:

> Ralf Angeli <address@hidden> writes:
>
>> +(defun reftex-remove-if (predicate list)
>> +  "Nondestructively remove all items from LIST which satisfy PREDICATE."
>> +  (let (result)
>> +    (dolist (elt list)
>> +      (unless (funcall predicate elt)
>> +    (add-to-list 'result elt t)))
>> +    result))
>> +
>
> No, that's bad.  Since it also uniquifies the list.  add-to-list is an
> O(n) operation, so this becomes O(n^2).
>
> Try rather
> (let (result)
>   (dolist (elt list (nreverse result))
>     (unless (funcall predicate elt)
>       (push elt result))))
>
> This is O(n).

Thanks.  Checked in.

-- 
Ralf




reply via email to

[Prev in Thread] Current Thread [Next in Thread]