我将在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将被编译。
是否有任何强烈的理由支持一种方法而不是另一种?