Bor*_*vić 5 algorithm optimization hash performance scala
何时使用它,为什么?
我的问题来自这句话:“用一些类散列 cons 并将它们的实例与引用相等进行比较”
总结一下大家的答案:
\n\n\nACL2(A Computational Logic for Applicative Common Lisp)是一个由编程语言、一阶逻辑的可扩展理论和机械定理证明器组成的软件系统。
\n--维基 ACL2
\n在计算机编程中,cons(发音为 /\xcb\x88k\xc9\x92nz/ 或 /\xcb\x88k\xc9\x92ns/)是 Lisp 编程语言大多数方言中的基本函数。cons 构造(因此得名)包含两个值或指向值的指针的内存对象。这些对象被称为(cons)单元、conses 或(cons)对。在 Lisp 术语中,“to cons x on y”的意思是用 (cons xy) 构造一个新对象。生成的对有一个左半部分,称为 car(第一个元素),和一个右半部分(第二个元素),称为 cdr。
\n--维基百科的缺点
\n从逻辑上讲,hons 只是 cons 的另一个名称,即以下是 ACL2 定理:
\n(等于(hons xy)(cons xy))
\nHons 通常比 cons 运行得慢,因为在创建 hons 时,会尝试查看是否已经存在具有相同汽车和 cdr 的 hons。这涉及搜索和哈希表的使用。
\n\n
鉴于你的问题:
\n\n\n对某些类进行哈希 cons 并将它们的实例与引用相等性进行比较
\n
看起来这hash cons是对 LISP 构造函数进行哈希处理,通过相等性比较来确定对象是否已存在的过程。