emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/doc/misc/cl.texi,v


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/doc/misc/cl.texi,v
Date: Wed, 21 Nov 2007 04:56:04 +0000

CVSROOT:        /cvsroot/emacs
Module name:    emacs
Changes by:     Miles Bader <miles>     07/11/21 04:55:58

Index: doc/misc/cl.texi
===================================================================
RCS file: /cvsroot/emacs/emacs/doc/misc/cl.texi,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- doc/misc/cl.texi    6 Sep 2007 05:10:11 -0000       1.2
+++ doc/misc/cl.texi    21 Nov 2007 04:55:58 -0000      1.3
@@ -62,14 +62,14 @@
 @menu
 * Overview::             Installation, usage, etc.
 * Program Structure::    Arglists, `eval-when', `defalias'
-* Predicates::           `typep', `eql', and `equalp'
+* Predicates::           `typep' and `equalp'
 * Control Structure::    `setf', `do', `loop', etc.
 * Macros::               Destructuring, `define-compiler-macro'
 * Declarations::         `proclaim', `declare', etc.
 * Symbols::              Property lists, `gensym'
 * Numbers::              Predicates, functions, random numbers
 * Sequences::            Mapping, functions, searching, sorting
-* Lists::                `cadr', `sublis', `member*', `assoc*', etc.
+* Lists::                `caddr', `sublis', `member*', `assoc*', etc.
 * Structures::           `defstruct'
 * Assertions::           `check-type', `assert', `ignore-errors'.
 
@@ -287,7 +287,7 @@
 they do not cause other components like @file{cl-extra} to be loaded.
 
 @example
-eql           floatp-safe   endp
+floatp-safe   endp
 evenp         oddp          plusp         minusp
 caaar .. cddddr
 list*         ldiff         rest          first .. tenth
@@ -700,7 +700,7 @@
 
 @menu
 * Type Predicates::      `typep', `deftype', and `coerce'
-* Equality Predicates::  `eql' and `equalp'
+* Equality Predicates::  `equalp'
 @end menu
 
 @node Type Predicates, Equality Predicates, Predicates, Predicates
@@ -840,40 +840,7 @@
 @section Equality Predicates
 
 @noindent
-This package defines two Common Lisp predicates, @code{eql} and
address@hidden
-
address@hidden eql a b
-This function is almost the same as @code{eq}, except that if @var{a}
-and @var{b} are numbers of the same type, it compares them for numeric
-equality (as if by @code{equal} instead of @code{eq}).  This makes a
-difference only for versions of Emacs that are compiled with
-floating-point support.  Emacs floats are allocated
-objects just like cons cells, which means that @code{(eq 3.0 3.0)}
-will not necessarily be true---if the two @code{3.0}s were allocated
-separately, the pointers will be different even though the numbers are
-the same.  But @code{(eql 3.0 3.0)} will always be true.
-
-The types of the arguments must match, so @code{(eql 3 3.0)} is
-still false.
-
-Note that Emacs integers are ``direct'' rather than allocated, which
-basically means @code{(eq 3 3)} will always be true.  Thus @code{eq}
-and @code{eql} behave differently only if floating-point numbers are
-involved, and are indistinguishable on Emacs versions that don't
-support floats.
-
-There is a slight inconsistency with Common Lisp in the treatment of
-positive and negative zeros.  Some machines, notably those with IEEE
-standard arithmetic, represent @code{+0} and @code{-0} as distinct
-values.  Normally this doesn't matter because the standard specifies
-that @code{(= 0.0 -0.0)} should always be true, and this is indeed
-what Emacs Lisp and Common Lisp do.  But the Common Lisp standard
-states that @code{(eql 0.0 -0.0)} and @code{(equal 0.0 -0.0)} should
-be false on IEEE-like machines; Emacs Lisp does not do this, and in
-fact the only known way to distinguish between the two zeros in Emacs
-Lisp is to @code{format} them and check for a minus sign.
address@hidden defun
+This package defines the Common Lisp predicate @code{equalp}.
 
 @defun equalp a b
 This function is a more flexible version of @code{equal}.  In
@@ -3685,7 +3652,7 @@
 The @code{:test} argument specifies a function which must return
 true (address@hidden) to indicate a match; instead, you may use
 @code{:test-not} to give a function which returns @emph{false} to
-indicate a match.  The default test function is @code{:test 'eql}.
+indicate a match.  The default test function is @code{eql}.
 
 Many functions which take @var{item} and @code{:test} or @code{:test-not}
 arguments also come in @code{-if} and @code{-if-not} varieties,
@@ -4998,7 +4965,7 @@
 keyword does not work in @code{defmacro} argument lists (except
 inside recursive argument lists).
 
-The @code{eql} and @code{equal} predicates do not distinguish
+The @code{equal} predicate does not distinguish
 between IEEE floating-point plus and minus zero.  The @code{equalp}
 predicate has several differences with Common Lisp; @pxref{Predicates}.
 
@@ -5218,12 +5185,6 @@
 Some Lisp packages use reader macros to create special syntaxes
 for themselves, which the Emacs parser is incapable of reading.
 
-The lack of reader macros, incidentally, is the reason behind
-Emacs Lisp's unusual backquote syntax.  Since backquotes are
-implemented as a Lisp package and not built-in to the Emacs
-parser, they are forced to use a regular macro named @code{`}
-which is used with the standard function/macro call notation.
-
 @item
 Other syntactic features.  Common Lisp provides a number of
 notations beginning with @code{#} that the Emacs Lisp parser
@@ -5287,11 +5248,11 @@
 something entirely different---strings with properties.
 
 @item
-Characters are distinct from integers in Common Lisp.  The
-notation for character constants is also different:  @code{#\A}
-instead of @code{?A}.  Also, @code{string=} and @code{string-equal}
-are synonyms in Emacs Lisp whereas the latter is case-insensitive
-in Common Lisp.
+Characters are distinct from integers in Common Lisp.  The notation
+for character constants is also different: @code{#\A} in Common Lisp
+where Emacs Lisp uses @code{?A}.  Also, @code{string=} and
address@hidden are synonyms in Emacs Lisp, whereas the latter is
+case-insensitive in Common Lisp.
 
 @item
 Data types.  Some Common Lisp data types do not exist in Emacs




reply via email to

[Prev in Thread] Current Thread [Next in Thread]