Nick Roberts <[EMAIL PROTECTED]> writes:
> Yes.  I still don't get it.

`eq' compares immediate values in lisp.  All integers in emacs lisp are
immediate values.  Floating point numbers in Emacs lisp are "boxed" --
allocated on the heap -- just like cons-cells or whatever.

So if you do (let ((v1 5) (v2 5) (v3 5.0) (v4 5.0)) ...), v1's and v2's
immediate values are the integer "5", so (eq v1 v2) will return t, but
v4's and v5's immediate values are _pointers_ to heap locations
containing 5.0.  v3 and v4 may point to the same location in the heap or
different locations (in this case probably different locations, but I
don't know of any guarantee); (eq v3 v4) can return t or nil depending
on which is the case.

-Miles

-- 
Any man who is a triangle, has thee right, when in Cartesian Space, to
have angles, which when summed, come to know more, nor no less, than
nine score degrees, should he so wish.  [TEMPLE OV THEE LEMUR]


_______________________________________________
emacs-pretest-bug mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-pretest-bug

Reply via email to