我们如何编写nothing
宏来扩展以下行,如评论中所述?
(nothing + 1 2) ; -> (+ 1 2)
(+ 1 nothing 2) ; -> (+ 1 2)
(nothing) ; -> ; (just a blank line)
如果#'0
的出现可以用“空语法”替换,如果存在这样的事情,那么像下面这样的东西就会起作用。
(define-syntax (nothing stx)
(syntax-parse stx
[(nothing) #'0]
[(nothing body ...) #'(body ...)]
[nothing #'0]))
所以我想问题可能是,“你如何在球拍中表示空语法?”,但这是背景。
答案 0 :(得分:4)
没有"空语法"的概念。你可以得到的最接近的是产生一个什么都不做的表达式。例如(void)
或(begin)
,具体取决于上下文。