【发布时间】:2013-09-17 12:56:39
【问题描述】:
在 Racket 中,你可以这样定义语法:
(define-syntax foo
(syntax-rules ()
((_ "abc") 'xyz)))
通过运行
(foo "abc")
它返回'xyz。使用define实现这个:
(define (foo x)
(match x ["abc" 'xyz]))
这一次,
(foo "abc")
仍然返回 'xyz.使用这些不同的形式有什么区别?
【问题讨论】:
-
你认为每一个被计算的时间是什么时间?你知道compile时间和run时间的区别吗?