guile-user
[Top][All Lists]
Advanced

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

Re: defined?


From: Mikael Djurfeldt
Subject: Re: defined?
Date: Mon, 13 Jan 2003 09:36:11 +0100
User-agent: Gnus/5.090008 (Oort Gnus v0.08) Emacs/21.2 (i386-pc-linux-gnu)

Egil Moeller <address@hidden> writes:

> The manual is quite fuzzy on this subject, so I have to ask you:
>
> How does one test if a name i bound, either globally by a define (this can
> be tested with defined?) or locally by a let/lambda or a local define?

The name should be related to the word "definition" or such, right?

We then do:

  (apropos "defin")

==>

(guile): module-define! #<procedure module-define! (module name value)>
(guile): module-defined?        #<procedure module-defined? (module name)>
(guile): nested-define! #<procedure nested-define! (root names val)>
(guile): local-define   #<procedure local-define (names val)>
(guile): make-undefined-variable        #<primitive-procedure 
make-undefined-variable>(guile): process-define-module    #<procedure 
process-define-module (args)>
(guile): environment-define     #<primitive-procedure environment-define>
(guile): environment-undefine   #<primitive-procedure environment-undefine>
(guile): module-defined-hook
(guile): define-public
(guile): define-private
(guile): define-module
(guile): compile-define-module-args     #<procedure compile-define-module-args 
(args)>(guile): define-syntax-macro
(guile): define-macro
(guile): define-option-interface
(guile): define
(guile): defined?       #<primitive-procedure defined?>
(guile): undefine

Aha! defined? looks interesting

  (help defined?)

`defined?' is a primitive procedure in the (guile) module.

 - Scheme Procedure: defined? sym [env]
     Return `#t' if SYM is defined in the lexical environment ENV.
     When ENV is not specified, look in the top-level environment as
     defined by the current module.

Maybe they even mention it in the manual?  A search by pressing `s' in
Emacs info mode and entering defined\? as search string (must escape ?
which is a regexp operator).  This takes us to:

Querying variable bindings
==========================

   Guile provides a procedure for checking whether a symbol is bound in
the top level environment.

 - Scheme Procedure: defined? sym [env]
 - C Function: scm_defined_p (sym, env)
     Return `#t' if SYM is defined in the lexical environment ENV.
     When ENV is not specified, look in the top-level environment as
     defined by the current module.

This entire procedure took less than 10 seconds to do.

Nothing bad intended with this message.

M




reply via email to

[Prev in Thread] Current Thread [Next in Thread]