undefined_p (s_exp) undefined_symbol_p (s_exp)
These two functions perform a similar task, checking to see if the s_exp is defined. However, they differ in two important ways:
undefined_p examines the value of s_exp directly, whereas undefined_symbol_p expects the value of s_exp to be a symbol, and examines the value of that resulting symbol.
undefined_p evaluates its argument in a protected scope where any "Symbol is undefined" errors will be trapped and disregarded. undefined_symbol_p evaluates its argument without protection, so it is possible that a "Symbol is undefined" error could be thrown if the evaluation of s_exp generates such an error.
Gamma> a = #xyz xyz Gamma> undefined_p (a); nil Gamma> undefined_symbol_p (a); t Gamma> xyz = t; t Gamma> undefined_symbol_p (a); nil Gamma> undefined_p (y); t Gamma> undefined_symbol_p (y); Symbol is undefined: y debug 1>
Copyright © 1995-2010 by Cogent Real-Time Systems, Inc. All rights reserved.