Open
Description
https://scheme.com/tspl4/syntax.html#./syntax:s42
The given example is missing set!
in the syntax-case literal list:
(let ([ls (list 0)])
(define-syntax a
(make-variable-transformer
(lambda (x)
(syntax-case x ()
[id (identifier? #'id) #'(car ls)]
[(set! _ e) #'(set-car! ls e)]
[(_ e ...) #'((car ls) e ...)]))))
(let ([before a])
(set! a 1)
(list before a ls))) ⇒ (0 1 (1))
As-is, any form like (a _ _)
will result in a set!
form.
Metadata
Metadata
Assignees
Labels
No labels