如何解决Emacs Lisp 中“不可区分”的含义是什么?
我正在阅读一个名为 eql
的 Emacs Lisp 函数的文档:
Return t if the two args are eq or are indistinguishable numbers.
这里的 indistinguishable
是什么意思?我一直在搜索文档,但没有找到解释。
解决方法
eq
谓词仅在比较相同的对象时才返回 t
。但是不能保证比较相等的两个值是同一个对象;两个具有相同值的文字甚至不能保证是同一个对象。因此,(eq 1 1)
可能会也可能不会评估为 t
。对于数字类型,eql
比较值,因此 (eql 1 1)
将始终评估为 t
。但是,eql
有点微妙:(eql 1 1.0)
将评估为 'nil
,因为 1
和 1.0
不是不可区分,即,它们不共享相同的类型。因此,在引用的上下文中,不可区分意味着操作数具有相同的类型和相同的值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。