Code: Select all
> (context 'bar)
bar
bar> (context MAIN)
MAIN
> (define (test) (context 'bar) (set 'x 100) (context MAIN))
(lambda () (context 'bar) (set 'x 100) (context MAIN))
> x
nil
> (set 'bar:x 10)
10
> (test)
MAIN
> bar:x
10
> x
100
> Code: Select all
> (context 'bar)
bar
bar> (context MAIN)
MAIN
> (define (test) (context 'bar) (set 'x 100) (context MAIN))
(lambda () (context 'bar) (set 'x 100) (context MAIN))
> x
nil
> (set 'bar:x 10)
10
> (test)
MAIN
> bar:x
10
> x
100
> Code: Select all
(define (test) (context 'bar) (set (sym "x") 10))
> (test)
10
> bar:x
10
> 
Code: Select all
(define (foo x y)
  (context 'bar)
  (local (a) (println (name a true)))
  (context MAIN))yesSo the (context 'foo) syntax functions almost like a preprocessor command (or as close to that as you can get with an interpreted language). Because it appears inside a lambda, it is not evaluated until the lambda is applied, yes?