Subject: bug#13620: 24.2.92; Doc: (cl) Equality Predicates: unclear role of `eql'

From: Michael Heerdegen <[email-masked]>
Date: Sun, 03 Feb 2013 17:53:33 +0100

Hello Emacs people,

please read this last paragraph in the manual, node (cl) Equality
Predicates:

,----------------------------------------------------------------------
|    Also note that the Common Lisp functions `member' and `assoc' use
| `eql' to compare elements, whereas Emacs Lisp follows the MacLisp
| tradition and uses `equal' for these two functions.  In Emacs, use
| `memq' (or `cl-member') and `assq' (or `cl-assoc') to get functions
| which use `eql' for comparisons.
|`----------------------------------------------------------------------

I think the last sentence is wrong or at least damaged, because `memq'
and `assq' use `eq' (not `eql') for comparison (at least, this is what
the doc of these function says).

This is in emacs-24 as well as in trunk.

I created this report after reading under "About equality in Emacs" in
gnu.emacs.help.  Pascal Bourguignon mentioned that a prior version said

,----------------------------------------------------------------------
| "In Emacs, use `member*' and `assoc*' to get
| functions which use `eql' for comparisons."
`----------------------------------------------------------------------

Thanks,

Michael

In GNU Emacs 24.2.92.3 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
 of 2013-01-30 on drachen
Bzr revision: [email-masked]
Windowing system distributor `The X.Org Foundation', version 11.0.10707000
System Description:	Debian GNU/Linux 7.0 (wheezy)

Configured using:
 `configure '--prefix=/usr/local/built/''

Important settings:
  value of $LC_ALL: de_DE.utf8
  value of $LC_TIME: C
  value of $LANG: de_DE.utf8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t