微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Emacs Lisp 中“不可区分”的含义是什么?

如何解决Emacs Lisp 中“不可区分”的含义是什么?

我正在阅读一个名为 eqlEmacs 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,因为 11.0 不是不可区分,即,它们不共享相同的类型。因此,在引用的上下文中,不可区分意味着操作数具有相同的类型和相同的值。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。