在Common Lisp中获取任何类型对象的哈希值

sin*_*nan 4 lisp hash common-lisp

我正在尝试在Common Lisp中实现一些数据结构(如HAMP-hash数组映射trie),我需要获得32位或64位哈希的对象,我想在这些数据结构中存储它们.

我知道我可以把对象放到Common Lisp哈希表(用它创建(make-hash-table))中,但我找不到一种获取对象哈希的方法,比如hashCodeJava或hashPython.Common Lisp有这样的功能吗?如果没有,CL的标准哈希表如何从任意类型的对象生成哈希值?

Som*_*net 6

该函数sxhash返回其参数的哈希值.细节:sxhash.

* (sxhash 'fred)
4287909749829334992
* (sxhash 'joe)
23906557261513707
* (sxhash 'fred)
4287909749829334992
Run Code Online (Sandbox Code Playgroud)