Clarify permitted mutation in maphash
documentation
* doc/lispref/hash.texi (Hash Access): * src/fns.c (Fmaphash): Make it clear what the function passed as argument can do. Until now these rules were unwritten, and are still unenforced.
This commit is contained in:
parent
fec87a4b36
commit
7a87ca09a7
2 changed files with 6 additions and 0 deletions
|
@ -206,6 +206,10 @@ This function calls @var{function} once for each of the associations in
|
|||
@var{table}. The function @var{function} should accept two
|
||||
arguments---a @var{key} listed in @var{table}, and its associated
|
||||
@var{value}. @code{maphash} returns @code{nil}.
|
||||
|
||||
@var{function} is allowed to call @code{puthash} to set a new value
|
||||
for @var{key} and @code{remhash} to remove @var{key}, but should not
|
||||
add, remove or modify other associations in @var{table}.
|
||||
@end defun
|
||||
|
||||
@node Defining Hash
|
||||
|
|
|
@ -5651,6 +5651,8 @@ DEFUN ("remhash", Fremhash, Sremhash, 2, 2, 0,
|
|||
DEFUN ("maphash", Fmaphash, Smaphash, 2, 2, 0,
|
||||
doc: /* Call FUNCTION for all entries in hash table TABLE.
|
||||
FUNCTION is called with two arguments, KEY and VALUE.
|
||||
It should not alter TABLE in any way other than using `puthash' to
|
||||
set a new value for KEY, or `remhash' to remove KEY.
|
||||
`maphash' always returns nil. */)
|
||||
(Lisp_Object function, Lisp_Object table)
|
||||
{
|
||||
|
|
Loading…
Add table
Reference in a new issue