我正在 Clojure 中创建一个 DSL,并且可以选择:
a) 以符号形式表示 DSL,以后可以转换为 AST:
'(foo (bar (baz 1) (boo 3)))
b) 将 DSL 表示为生成 AST 节点的纯函数:
(foo (bar (baz 1) (boo 3)))
=> [AST with foo at top level]
随后将编译 AST。
是否有充分的理由偏爱一种方法而不是另一种方法?
我正在 Clojure 中创建一个 DSL,并且可以选择:
a) 以符号形式表示 DSL,以后可以转换为 AST:
'(foo (bar (baz 1) (boo 3)))
b) 将 DSL 表示为生成 AST 节点的纯函数:
(foo (bar (baz 1) (boo 3)))
=> [AST with foo at top level]
随后将编译 AST。
是否有充分的理由偏爱一种方法而不是另一种方法?