Получение хэшей любого типа объектов в Common Lisp - PullRequest
4 голосов
/ 30 декабря 2011

Я пытаюсь реализовать некоторые структуры данных (например, отображение сопоставленных массивов HAMP) в Common Lisp, и мне нужно получить 32- или 64-битные хеши объектов, которые я хочу сохранить в этих структурах данных.

Я знаю, что могу помещать объекты в хеш-таблицы Common Lisp (созданные с помощью (make-hash-table)), но я не смог найти способ получить хеш объекта, например hashCode Java или hash ofPython.У Common Lisp есть такая функция?Если нет, то как стандартная хеш-таблица CL генерирует хэши из произвольных типов объектов?

1 Ответ

6 голосов
/ 30 декабря 2011

Функция sxhash возвращает хэш для своего аргумента. Детали: sxhash .

* (sxhash 'fred)
4287909749829334992
* (sxhash 'joe)
23906557261513707
* (sxhash 'fred)
4287909749829334992
...