Lobsters | 📄 原文链接 | 2026-10-27 收录

让 EQUALP 下的数字哈希既正确又高效:ECL 的三轮优化

来源:turtleware.eu — 2026-10-26

📋 概述

作者在给 ECL 优化泛函数派发时顺手重做了哈希表与哈希函数,撞上一个别扭的老问题:Common Lisp 的 EQUALP 认为 1 和 1.0、1/2 和 0.5、42 和 #C(42.0 0.0) 相等,所以哈希函数必须给它们同一个值。一致性要求只是下限——把所有数字哈希成常数虽然合规,但哈希表会退化成链表。文章从最简单的基线模型出发,经两轮实现修正,最后落到一个可解释的二分模型:既不因为偷懒丢精度,也保证除真正相等的数以外都走不同路径。

🔑 核心要点

💡 金句

hashing can be lossy, but it can't be inconsistent with the test
← 返回 Lobsters 首页