[functional-tests] fluid-let
This commit is contained in:
parent
2fe464a4cf
commit
bc765ce89d
@ -2,7 +2,8 @@
|
||||
(utils)
|
||||
(export inc!
|
||||
dec!
|
||||
swap!)
|
||||
swap!
|
||||
fluid-let)
|
||||
(import (rnrs))
|
||||
|
||||
(define-syntax inc!
|
||||
@ -21,4 +22,16 @@
|
||||
(let ((tmp x))
|
||||
(set! x y)
|
||||
(set! y tmp)))))
|
||||
|
||||
(define-syntax fluid-let
|
||||
(syntax-rules ()
|
||||
((_ ((x e)) b1 b2 ...)
|
||||
(let ((y e))
|
||||
(let ((swap (lambda ()
|
||||
(let ((t x))
|
||||
(set! x y)
|
||||
(set! y t)))))
|
||||
(dynamic-wind swap (lambda ()
|
||||
b1 b2 ...)
|
||||
swap))))))
|
||||
)
|
||||
|
Loading…
Reference in New Issue
Block a user