当我阅读方案编程语言的宏部分时,它提到当您试图使用define-syntax定义语法扩展时,应该使用pat ...在模式中指定零或多个表达式。为什么不直接将...用于零或多个表达式,在这种情况下,pat ...意味着一个或多个表达式?
此外,当作者将and的定义定义如下:
(define-syntax and
(syntax-rules ()
[(_) #t]
[(_ e) e]
[(_ e1 e2 e3 ...)
(if e1 (and e2 e3 ...) #f)]))为什么不这样写:
(define-syntax and
(syntax-rules ()
[(_) #t]
[(_ e) e]
[(_ e1 e2 ...)
(if e1 (and e2 ...) #f)]))我已经用一些案例测试了这个定义,但我没有发现任何问题。
https://stackoverflow.com/questions/18895016
复制相似问题