`temporarily` should not be splicing construct. Zhu Zihao (12 Jun 2025 05:49 UTC)
Fwd: `temporarily` should not be splicing construct. Arthur A. Gleckler (14 Jun 2025 23:33 UTC)

`temporarily` should not be splicing construct. Zhu Zihao 12 Jun 2025 05:30 UTC
In the refrence implementation [1]:

```
(define-syntax/who temporarily
    (lambda (x)
      (syntax-case x ()
        [(_ () b1 b2 ...) #'(begin b1 b2 ...)]
        [(_ ([x e] ...) b1 b2 ...)
         (with-syntax ([(p ...) (generate-temporaries #'(x ...))]
                       [(y ...) (generate-temporaries #'(x ...))])
           #'(let ([p x] ... [y e] ...)
               (let ([swap (lambda ()
                             (let ([t (p)]) (p y) (set! y t))
                             ...)])
                 (dynamic-wind swap (lambda () b1 b2 ...) swap))))])))
```

When use as `(temporarily () b1 b2 ...)`,it expand to (begin b1 b2 ...)
and become a splicing construct. IMO it should expand to (let () b1 b2
...) like Chez's implementation[2]

[1]: https://github.com/scheme-requests-for-implementation/srfi-226/blob/master/lib/control-features.sls#L1237
[2]: https://github.com/cisco/ChezScheme/blob/main/s/syntax.ss#L8346
--
Retrieve my PGP public key:
执行下列命令以获取我的 PGP 公有密钥:

  gpg --recv-keys B3EBC086AB0EBC0F45E0B4D433DB374BCEE4D9DC

Zihao