Page 1 of 1

How delete works?

Posted: Fri Aug 01, 2008 5:44 pm
by Kazimir Majorinc
I expected that it deletes symbol from the list of symbols, but it doesn't:
> (set 'delete-me nil)
nil
> (find 'delete-me (symbols))
108
> (delete 'delete-me)
true
> (find 'delete-me (symbols))
108

Posted: Fri Aug 01, 2008 7:42 pm
by Lutz
It does delete it, but as soon as you use it it is created again, better check for the symbol using a string:

Code: Select all

> (find "delete-me" (map string (symbols)))
108
> (delete 'delete-me)
true
> (find "delete-me" (map string (symbols)))
nil
> 
You can use an extra nil flag in 'sym' to check for existence of a symbol without creating it:

Code: Select all

> (sym "delete-me" MAIN nil)
> nil