((_ y (... ...))
(apply f #'(y (... ...))))))))
And with this tool we can device a very useful reader extension #_ e.g.
(define (syntax-closure-reader chr port)
(define (g-loop x)
(let loop ((x x) (a '()) (g '()) (t '()))
(match x
(((and stx ('syntax x)) . l)
(let ((gen (gensym "template")))
(loop l (cons gen a) (cons gen g) (cons x t))))
((x . l)
(loop l (cons x a) g t))
(()
(values (reverse a) (reverse g) (reverse t))))))
(let ((code (read port)))
(match code
((F X ...)
(call-with-values (lambda () (g-loop X))
(lambda (args gensyms template)
`(syntax-closure
(unsyntax (lambda ,gensyms
(,F ,@args)))
,@template))))
(_ (error "wrong format in syntax-closure-reader")))))
(read-hash-extend #\_ syntax-closure-reader)
And with this we can now do
(define (g x) x)
(define-syntax f (lambda (x) #`(let ((x 1)) #_(g #'x))))