方案编译器如何确定在宏扩展期间哪些函数可用?
我的意思是这样的低级机制,比如语法案例,你不仅可以生成模式替换,还可以调用一些函数,至少在 fender 部分
编辑:
我的意思是,我需要在宏扩展过程中使用普通函数。例如:
(define (twice a)
(declare 'compile-time)
(* 2 a))
(let-syntax ((mac (lambda (x)
(syntax-case x ()
((_ n) (syntax (display (unsyntax (twice n)))))))))
(mac 4))
其中 n 已知是一个数字,并且 (两次 n) 的评估发生在扩展过程中。