all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / 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

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.