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 :)