SHOW:
|
|
- or go back to the newest paste.
1 | - | ;;; |
1 | + | (define-syntax-rule (begin0 exp exps ...) |
2 | - | ;;; The first attempt on macros: |
2 | + | (call-with-values |
3 | - | ;;; |
3 | + | (lambda () exp) |
4 | - | ;;; (getenv "asdf") |
4 | + | (lambda vals |
5 | - | ;;; => "999" |
5 | + | exps ... |
6 | - | ;;; |
6 | + | (apply values vals)))) |
7 | - | ;;; (let-env (("asdf" "123")) |
7 | + | |
8 | - | ;;; (getenv "asdf")) |
8 | + | (define-syntax-rule (let-env ((var val) ...) exp exp* ...) |
9 | - | ;;; => "123" |
9 | + | (let ((old-env (environ))) |
10 | - | ;;; |
10 | + | (for-each setenv (list var ...) (list val ....)) |
11 | - | ;;; (getenv "asdf") |
11 | + | (begin0 |
12 | - | ;;; => "999" |
12 | + | (begin exp exp* ...) |
13 | - | ;;; |
13 | + | (environ old-env)))) |