unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#73886: 29.4; Confusing info about void function cells in Emacs Lisp manual
@ 2024-10-19 14:37 Ulrich Müller
  2024-10-19 17:45 ` Eli Zaretskii
  2024-10-19 19:08 ` Andreas Schwab
  0 siblings, 2 replies; 4+ messages in thread
From: Ulrich Müller @ 2024-10-19 14:37 UTC (permalink / raw)
  To: 73886

Section 13.9 "Accessing Function Cell Contents" of the GNU Emacs Lisp
Reference Manual emphasizes the distinction between void and nil
in function cells:

|    Note that void is not the same as ‘nil’ or the symbol ‘void’.
| The symbols ‘nil’ and ‘void’ are Lisp objects, and can be stored into
| a function cell just as any other object can be (and ‘void’ can be a
| valid function if you define it with ‘defun’).  A void function cell
| contains no object whatsoever.

|    You can test the voidness of a symbol's function definition with
| ‘fboundp’.  After you have given a symbol a function definition, you
| can make it void once more using ‘fmakunbound’.

Also, for "fboundp":

|      This function returns ‘t’ if the symbol has an object in its
|      function cell, ‘nil’ otherwise.  It does not check that the
|      object is a legitimate function.

It seems that the actual behavior does not reflect this, i.e. there
is no distinction between nil and void:

   (fmakunbound 'foo)
   (fboundp 'foo) ⇒ nil

   (fset 'foo nil)
   ;; according to the manual, the following should return t
   ;; because nil is a Lisp object:
   (fboundp 'foo) ⇒ nil

Is the manual wrong, or am I missing something?





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

end of thread, other threads:[~2024-10-19 21:07 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-19 14:37 bug#73886: 29.4; Confusing info about void function cells in Emacs Lisp manual Ulrich Müller
2024-10-19 17:45 ` Eli Zaretskii
2024-10-19 19:08 ` Andreas Schwab
2024-10-19 21:07   ` Ulrich Müller

Code repositories for project(s) associated with this public inbox

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

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