mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-29 22:40:34 +02:00
* calling.scm (excursion-function-syntax): Use a sequence of
set!'s, not a single multi-variable set!; we removed support for that syntax a long time ago. (Thanks to Shuji Narazaki.)
This commit is contained in:
parent
cd6c612a27
commit
63da7567af
1 changed files with 12 additions and 9 deletions
|
@ -133,15 +133,18 @@
|
|||
(swap-fn-name (gensym 'swap))
|
||||
(thunk-name (gensym 'thunk)))
|
||||
`(lambda (,thunk-name)
|
||||
(letrec ((,tmp-var-name #f)
|
||||
(,swap-fn-name
|
||||
(lambda () ,@ (map (lambda (n sn) `(set! ,tmp-var-name ,n ,n ,sn ,sn ,tmp-var-name))
|
||||
vars saved-value-names)))
|
||||
,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars))
|
||||
(dynamic-wind
|
||||
,swap-fn-name
|
||||
,thunk-name
|
||||
,swap-fn-name)))))
|
||||
(letrec ((,tmp-var-name #f)
|
||||
(,swap-fn-name
|
||||
(lambda () ,@ (map (lambda (n sn)
|
||||
`(begin (set! ,tmp-var-name ,n)
|
||||
(set! ,n ,sn)
|
||||
(set! ,sn ,tmp-var-name)))
|
||||
vars saved-value-names)))
|
||||
,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars))
|
||||
(dynamic-wind
|
||||
,swap-fn-name
|
||||
,thunk-name
|
||||
,swap-fn-name)))))
|
||||
|
||||
|
||||
(define (getter-and-setter-syntax vars)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue