4 ms·
Thanks! Out of curiosity, have you ever tried developing DSLs in Racket? One of its explicit reasons for existence is to enable fast development of custom DSLs
by proamdev123 3y ago
Thanks!
Out of curiosity, have you ever tried developing DSLs in Racket? One of its explicit reasons for existence is to enable fast development of custom DSLs.
- mjburgess 3y agoThe art of designing a language is expressing semantics in intuitive syntax -- it's an art because "intuitive" is essentially a psycho-social cultural condition. (ie., I reject Lisp) C was "intuitively mind-expanding" to assembly developers and PDP-machine programmers -- and so on. My aim is always to express a semantic concept in syntax so that it is so obvious that it's originating language developers will be shocked. You can do that both with, eg., map fn over collection and xs/fn and repeat x from xs: fn(x) and { fn(x) st. x <- xs & st. x > 0 } etc. In that each syntax resonates with a certain programming culture. For novices, I suppose the following might be "consciousness raising", set result := repeat: set x := next xs: save fn(x)