Hi all,

An elementary scheme problem from an elementary schemer...

I need to create multiple variable bindings from a list of symbols.  The
value of the variables is unimportant.  It's the 'names' of the
variables that matter.

In pseudo-scheme code:

  (map (lambda (v) (define (eval v) "foo") '(var1 var2 var3)))

Clearly this won't work but I thought perhaps calling a macro in place
of the 'define' would do it, but...

 guile> (define-macro (definer var val)
          `(define ,var ,val))
 guile> (definer 'foo "bar")
 guile> foo
 ERROR: Unbound variable: foo
 ABORT: (unbound-variable)

No doubt this fails for the same reason this does:

 guile> (define 'foo "bar")
 guile> foo
 ERROR: Unbound variable: foo
 ABORT: (unbound-variable)

What exactly happens when you 'define' a symbol?

Any tips/pointers much appreciated.

Sebastian




Reply via email to