[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Adding assoc-delete-all / rassoc-delete-all
From: |
Stefan Monnier |
Subject: |
Re: Adding assoc-delete-all / rassoc-delete-all |
Date: |
Thu, 17 Apr 2014 09:15:03 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.4.50 (gnu/linux) |
> Strange that it compares with `eql'. Doesn't `eql' only allow comparing
> floating point values in addition to what's allowed by `eq'?
Common-Lisp simply uses `eql' by default "everywhere". That's because
the semantics of `eq' is pretty weird, really: if it weren't for `eq'
you could never tell the difference between two identical floats. So in
many ways, `eq' is a mistake which lets details of implementation
seep through.
Oh, and IIUC `eql' is also different from `eq' on all other immutable
objects (e.g. bignums).
> And floats don't seem to be reasonable candidates for a `case'
> distinction...
Indeed, but comparing their addresses is even less desirable.
Stefan