4 ms·
It’s a DSL by definition because a function provided by an external library cannot be a language primitive in the host language, or else it wouldn’t need to be
by mlazos 3y ago
It’s a DSL by definition because a function provided by an external library cannot be a language primitive in the host language, or else it wouldn’t need to be an external library! Unless we’re talking about a LISP but we’re not.
- stavros 3y agoAll libraries are DSLs, then? The initial claim was: > you can't really implement it in a library in a normal programming [...] you have to implement it in a programming language, at least an embedded domain-specific language So which is it?
- mlazos 3y agoNo lol not all libraries are DSLs, we’re talking specifically about libraries which provide functions allowing you to construct a computational graph. These libraries are DSLs, not host language primitives.
- stavros 3y agoWhat's the difference between a library function and a DSL library? What's a library function that's also a host language primitive?
- mlazos 3y agoA DSL lib is a subset of “all possible function libs” and there is no such thing as a function library which is a host language primitive by definition. You can’t be a primitive of a language if you’re implemented in a library for that language.
- kragen 3y agoregexps, html, and css2 are also dsls despite not providing functions allowing you to construct a computational graph, but i agree that at the point where you have a graph of computations you have accidentally a programming language