【发布时间】:2014-01-12 21:51:05
【问题描述】:
我希望能够编写这样的嵌套表达式:
(AND/OR expr1 op1 expr2 AND/OR expr3 op2 expr4 and so on)
AND/OR 本质上是 AND 或 OR。但我希望能够写出无限数量的它们。我正在使用define-syntax 来尝试实现这一点,但我不确定如何接受无限数量的嵌套表达式。
不要介意我的例子中的 expr 和 op,这部分我可以自己处理。我只想知道如何接受无限嵌套。
例子:
(SELECT somecolumns
FROM sometable
WHERE something
AND/OR something
AND/OR (something AND/OR something)
AND/OR ...)
【问题讨论】:
-
你有一些样本输入和样本预期输出吗?
-
我用一个例子编辑了帖子,这可能会让事情更清楚。
-
看起来你会从写像
(AND/OR expr1 op1 expr2 (AND/OR expr3 op2 ...))这样的表达式中受益。然后你的宏自然会组成。否则,您将使用 s-expression 语法,这会使事情变得困难。
标签: macros nested scheme lisp racket