unofficial mirror of help-gnu-emacs@gnu.org
 help / color / mirror / Atom feed
* `apply-partially` and hash tables
@ 2024-10-20  9:43 Joost Kremers
  2024-10-20  9:54 ` tomas
  2024-10-20 14:46 ` Stefan Monnier via Users list for the GNU Emacs text editor
  0 siblings, 2 replies; 7+ messages in thread
From: Joost Kremers @ 2024-10-20  9:43 UTC (permalink / raw)
  To: help-gnu-emacs

Hi list,

A question that just came up: if I use `apply-partially` to create a
function that has a hash table as one of its fixed arguments, and then at
some later point add data to said hash table, it seems that this data is
visible to subsequent calls to the partially applied function:

```
(let* ((s #s(hash-table test equal data ("MGrt" "Mouton De Gruyter"
                                         "OTS" "Utrecht School of Linguistics UiL-OTS")))
       (fn (apply-partially #'parsebib--expand-strings s)))
  (puthash "BW" "Oxford: Blackwell Publishers" s)
  (funcall fn "BW"))
"Oxford: Blackwell Publishers"
```

`parsebib--expand-strings` is a function that (among other things) does a
hash table look-up. The entry ("BW" "Oxford: Blackwell Publishers") is
added to the hash table after the function is created, but it can obviously
still be found by it.

So my question: is this intended behaviour, something that I can rely on to
continue to work, or is this an artefact of the implementation that may
change at any time in the future?

TIA

-- 
Joost Kremers
Life has its moments



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-10-20 20:29 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-20  9:43 `apply-partially` and hash tables Joost Kremers
2024-10-20  9:54 ` tomas
2024-10-20 14:46 ` Stefan Monnier via Users list for the GNU Emacs text editor
2024-10-20 15:19   ` Joost Kremers
2024-10-20 17:04     ` Stefan Monnier
2024-10-20 19:12       ` Rudolf Schlatte
2024-10-20 20:29         ` Stefan Monnier via Users list for the GNU Emacs text editor

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).