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

Re: Proposal #9 Status: Variable Name Conflicts

actually, i think it can be done in order N.  the idea is to scan down
the list checking each symbol's property list for a flag.  if it's not
there, put it there; if it is, you've already seen it.  the following
(untested) code may give you the idea:

(defun dup-p (arg-list)
  (do ((l arg-list (cdr l))
       (foo (gensym)))
      ((null l) (mapc #'(lambda (x) (remprop x foo)) arg-list) nil)
    (if (get (car l) foo)
        (progn (mapc #'(lambda (x) (remprop x foo)) arg-list)
               (return t))
        (setf (get (car l) foo) t))))