Add support for a compare-fn in add-to-list
Stephen J. Turnbull
stephen at xemacs.org
Tue Feb 26 01:26:22 EST 2008
Brian Palmer writes:
> - (if (member element (symbol-value list-var))
> + (if (if (not compare-fn)
> + (member element (symbol-value list-var))
> + (member* element (symbol-value list-var) :test compare-fn))
How about
(if (member* element (symbol-value list-var)
:test (or compare-fn #'equal))
instead? Or for efficiency (does that ever matter here?)
;; member and memq are implemented in C
(if (cond ((eq compare-fn #'eq) (memq element (symbol-value list-var)))
((null compare-fn) (member element (symbol-value list-var)))
((member* element (symbol-value list-var) :test compare-fn)))
Do we have any use cases for :test functions other than member?
More information about the XEmacs-Patches
mailing list