|
|
|
|
|
by midnight_eclair
77 days ago
|
|
> DSLs typically involves constructing macros that are domain specific a DSL is a constrained language for expressing domain concepts. in traditional Lisps they are often syntax-oriented, because code is lists and macros are a natural tool. in Clojure, pervasive use of keywords, vectors and maps allows you to shift DSL design towards data interpretation rather than syntax transformation. so in Clojure doesn't discourage DSLs - clojure practicioners simply prefer data-oriented DSLs to macro-oriented ones, mostly because they are easier to reason about and process with existing tools, while macros are used more selectively. |
|
> DSL is a constrained language for expressing domain concepts
What you're calling "data-oriented DSLs" is not constrained.
I guess this is all semantic, but in my book just specifying a data-structure doesn't make a language. You're not extending the host language in any way