在哈希表Lisp中计算无重复元素

时间:2013-11-25 02:56:14

标签: loops hashmap lisp

(dolist (i list (hash-table-count hash))
  (setf (gethash i hash) t))))

上面的代码是我的一篇讲座教程的摘录,我因为生病而错过了,我理解了一些代码,但我无法弄清楚它是如何计算不相同的元素。

我所知道的:我们循环遍历列表,对于列表中的每个i,我们在哈希表中将键设置为i,将值设置为true。

1 个答案:

答案 0 :(得分:2)

示例:如果list(3 3 5 6 6 6 9),则循环将依次检查每个列表元素,并将这些哈希键设置为t3,{{1 },56。由于93在列表中重复,因此不会为这些元素创建新的哈希键。最后6返回哈希表中的键数,即hash-table-count