考虑以下两段球拍代码:
;version A
(define-syntax (b stx)
(syntax-case stx () [(X u) #'(display (syntax->datum #'(X u v)))]))
(b 1)和
;version B
(define-for-syntax (g stx)
(syntax-case stx () [(X u) #'(display (syntax->datum #'(X u v)))]))
(define-syntax (b s) (g s))
(b 1)在实验中,两个程序都返回(b 1 v)。问:“版本B”是一个有效的球拍吗?如果是这样,它是否完全等同于“版本A"?
发布于 2013-06-06 23:55:11
是的,这两个都很好,正如您所注意到的,它们做的是完全相同的事情。
https://stackoverflow.com/questions/16966598
复制相似问题