mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-06-30 06:50:31 +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))
|
(swap-fn-name (gensym 'swap))
|
||||||
(thunk-name (gensym 'thunk)))
|
(thunk-name (gensym 'thunk)))
|
||||||
`(lambda (,thunk-name)
|
`(lambda (,thunk-name)
|
||||||
(letrec ((,tmp-var-name #f)
|
(letrec ((,tmp-var-name #f)
|
||||||
(,swap-fn-name
|
(,swap-fn-name
|
||||||
(lambda () ,@ (map (lambda (n sn) `(set! ,tmp-var-name ,n ,n ,sn ,sn ,tmp-var-name))
|
(lambda () ,@ (map (lambda (n sn)
|
||||||
vars saved-value-names)))
|
`(begin (set! ,tmp-var-name ,n)
|
||||||
,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars))
|
(set! ,n ,sn)
|
||||||
(dynamic-wind
|
(set! ,sn ,tmp-var-name)))
|
||||||
,swap-fn-name
|
vars saved-value-names)))
|
||||||
,thunk-name
|
,@ (map (lambda (sn n) `(,sn ,n)) saved-value-names vars))
|
||||||
,swap-fn-name)))))
|
(dynamic-wind
|
||||||
|
,swap-fn-name
|
||||||
|
,thunk-name
|
||||||
|
,swap-fn-name)))))
|
||||||
|
|
||||||
|
|
||||||
(define (getter-and-setter-syntax vars)
|
(define (getter-and-setter-syntax vars)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue