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?