Nicolas Martyanoff on Nostr: Let us add DEFAPARAMETER to the long list of features #Emacs Lisp is missing compared ...
Let us add DEFAPARAMETER to the long list of features #Emacs Lisp is missing compared to #CommonLisp. ELisp only has DEFVAR, which does not modify the binding if it already exists. Perfect to keep a state. But for a lot of top-level values, you want DEFPARAMETER, which creates or updates a binding.
Module development with DEFVAR only is really frustrating, forced to manually call SETQ each time you want to change a value.
Published at
2025-03-15 17:28:47 UTCEvent JSON
{
"id": "d2399bb4dc9958988cc80eedf68307b90996ec73cf1f84b889e201036070c49f",
"pubkey": "70a015fdfe0a7b1efc664ad2fe4d65f04f88c4b2811b61a51e035591103667f5",
"created_at": 1742059727,
"kind": 1,
"tags": [
[
"t",
"commonlisp"
],
[
"proxy",
"https://fosstodon.org/@galdor/114167626313499016",
"web"
],
[
"t",
"emacs"
],
[
"proxy",
"https://fosstodon.org/users/galdor/statuses/114167626313499016",
"activitypub"
],
[
"L",
"pink.momostr"
],
[
"l",
"pink.momostr.activitypub:https://fosstodon.org/users/galdor/statuses/114167626313499016",
"pink.momostr"
],
[
"-"
]
],
"content": "Let us add DEFAPARAMETER to the long list of features #Emacs Lisp is missing compared to #CommonLisp. ELisp only has DEFVAR, which does not modify the binding if it already exists. Perfect to keep a state. But for a lot of top-level values, you want DEFPARAMETER, which creates or updates a binding.\n\nModule development with DEFVAR only is really frustrating, forced to manually call SETQ each time you want to change a value.",
"sig": "9ff0f08c873b4f6e2c0593c2bd75f8961fa1fd220f7053d230864fe71d068de2b8cadda8cf62f7a41f67bd8f3503a13a22cf31f934f1af7dd4987eb754e6ce12"
}