3

考虑以下两段球拍代码:

;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”?

4

1 回答 1

4

是的,正如您所注意到的,这两者都很好,并且做的事情完全相同。

于 2013-06-06T15:55:10.933 回答