Is it possible to extend the Julia syntax seamlessly as in the Racket language:
“Racket eliminates the hard boundary between library and language, overcoming a seemingly intractable conflict. In practice, this means new linguistic constructs are as seamlessly imported as functions and classes from libraries and packages. For example, Racket’s class system and for loops are imports from plain libraries, yet most programmers use these constructs without ever noticing their nature as user-defined concepts.”
[Commun. ACM 61.3 (2018) pp. 62–71]
I mean eg., to add a new
loop construct (without a need for macro symbol
loop until <cond> #... do something ... end loop
Such a possibility is highly valuable for developing DSLs.