This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Environment objects, closed environments, local-eval...


Lalo Martins wrote:
>  .....
> But how can I get a closed environment object to work with? So
> that, for example
> (define foo 1)
> (local-eval '(define foo 2) env)
> would leave foo as 1 outside env?

Just create a new scope (for example with let):

(define env (let ()
	      (the-environment)))
(define foo 1)
(local-eval '(define foo 2) env)
(display foo)
(newline)
(local-eval '(display foo) env)
(newline)

which gives:
1
2

Is that what you want?

Alex