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

Something out for which to watch



If you use a function like this:

(defun foo (x) (delete x '(a b c d e f)))

the quoted list '(a b c d e f) is NOT immune to the delete!  Running the
function could actually change it!

I'm not sure if this is a bug in CLISP or not--I was under the impression
that a quoted, explicit list like that was a constant, and would be
"re-created" every time the function was run.

Anyway, the problem can of course be solved by using "remove" instead.  I
would never have been able to find this bug in my program without STEP, which
revealed that my list had somehow changed...

! Peter Dudey, 11 kyu, Lisp SubGuru, Order of the Golden Parentheses \FINGER !
! Reformed Church of James "Eric" the Half-a-Bee, Dipped in Curry        \ME !
! "A shadowy flight into the dangerous world of a man who does not exist."   !
! Please mail me plastic spaceships:  900 State St. C-210, Salem, OR  97301  !