(dolist (i list (hash-table-count hash))
(setf (gethash i hash) t))))
上面的代码是我的一篇讲座教程的摘录,我因为生病而错过了,我理解了一些代码,但我无法弄清楚它是如何计算不相同的元素。
我所知道的:我们循环遍历列表,对于列表中的每个i,我们在哈希表中将键设置为i,将值设置为true。
答案 0 :(得分:2)
示例:如果list
为(3 3 5 6 6 6 9)
,则循环将依次检查每个列表元素,并将这些哈希键设置为t
:3
,{{1 },5
和6
。由于9
和3
在列表中重复,因此不会为这些元素创建新的哈希键。最后6
返回哈希表中的键数,即hash-table-count
。