Post AbAXISLttJKBrBhv2e by darkstar@mastodon.nl
 (DIR) More posts by darkstar@mastodon.nl
 (DIR) Post #Ab9vZxsQ8lbEIEq8zQ by louis@emacs.ch
       2023-10-26T10:27:51Z
       
       0 likes, 0 repeats
       
       The power of Lisp macros:https://jobhdez.github.io/2023/10/25/power-of-lisp-macros.html#Lisp #CommonLisp
       
 (DIR) Post #AbA1aAc1ODQnW5eOoq by darkstar@mastodon.nl
       2023-10-26T11:35:18Z
       
       0 likes, 0 repeats
       
       @louis maybe add a short explanation what a “DSL” is
       
 (DIR) Post #AbAA00S6aNgDAVqKDw by louis@emacs.ch
       2023-10-26T13:09:36Z
       
       0 likes, 0 repeats
       
       @darkstar "DSL" is a "Domain-Specific Language". Meaning, with Lisp macros you can create your own languages that help you to describe your problem in a more imperative way: "what" you want to do instead of "how" you want to do it.Racket is a Lisp implementation that has a strong focus on creating such languages. The Pollen language is such an example that was implemented in Racket to write books:https://docs.racket-lang.org/pollen/ SQL could also be seen as a domain-specific language (as opposed to a general purpose programming language).Reference:https://en.wikipedia.org/wiki/Domain-specific_language
       
 (DIR) Post #AbAXISLttJKBrBhv2e by darkstar@mastodon.nl
       2023-10-26T17:30:40Z
       
       0 likes, 0 repeats
       
       @louis I meant to say: maybe you can add that to the text. Not everyone is familiar with the abbreviation
       
 (DIR) Post #AbAYhvB5xFvuS5MMbI by louis@emacs.ch
       2023-10-26T17:46:28Z
       
       0 likes, 0 repeats
       
       @darkstar Ah, it's not my text. Just a recent link I found.
       
 (DIR) Post #AbAjQo9JvtUzE4ZWWO by fourier@functional.cafe
       2023-10-26T19:46:39Z
       
       0 likes, 0 repeats
       
       @louis I don't write many macros (I'm not that good in CL), but it's handy to have this feature anyway. For example I write a lot of prototypes and tools for communicating with embedded software using (proprietary) binary protocols, and the pattern to write encoder/decoder functions for trivial types and then write macros to define dsl to describe packets and generate a set of encoder/decoder functions for them I use very often, even if it is a trivial example :)