mac@k9.cad.mcc.com (Mac Michaels) (05/10/90)
Using only essential Scheme procedures, I have not been able to determine if
a non-essential Scheme procedure is already defined.
PROCEDURE? fails with an undefined symbol error when given a non-existent
symbol name. If you quote the argument to PROCEDURE? it always returns #F.
To attempt to get around this with SYMBOL? is also futile. SYMBOL? also
gets an undefined symbol error when given a non-existent symbol name and
always returns #T when given a quoted name.
Why is it needed? I am trying to write a file that can be loaded into any
Scheme that will add some of the missing procedure definitions. This will
allow me to easily port code to a number of different Scheme
implementations. I do not want to replace the implementation's
non-essential function if it already exists.
Some ways that this problem could be addressed are:
Add a special form (say DEFINED?) that returns #T if it's unquoted
argument exists.
Add a procedure to return the Scheme system name and version number.
--
USPS: Mac Michaels, 3500 West Balcones Center Dr., Austin,TX 78759
ARPA: mac@mcc.com TELE: (512) 338-3509 FAX: (512) 338-3600
UUCP: {uunet,harvard,gatech,pyramid}!cs.utexas.edu!milano!cadillac!mac
:-)))))))) She had so many chins, she looked like a piece of Lisp code!