我在使用 common lisp 计算两个位向量之间的距离时遇到问题。
我对 lisp 很陌生,这是我的人工智能作业的最后一道作业问题,我相信我遇到的问题是语法问题。
这是问题:
在由 1 和 0 的列表表示的相同长度的两个位向量之间编写递归函数 DISTANCE。例如,
(距离'(1 0 1 1)'(0 1 0 1))
答案:3
讨论如果向量的长度不同,必须做什么。
据我了解,两个位向量之间的距离只是对两者进行异或运算,然后计算 1。
使用该示例,我们将有 1011 ^ 0101 = 1110 等于 3。
假设这是计算距离的正确方法,那么我的问题是找到一种在 lisp 中进行 XOR 的方法,以及使其递归。
如何获取两个列表并将它们放入我可以使用的格式logxor
(如图所示),然后计算结果列表中的 1?
在尝试这样做(logxor '(1 0 1 1) '(0 1 0 1))
时,它告诉我 '(1 0 1 1) 不是整数,因此它似乎logxor
不适用于列表,这让我不知所措。
您可以提供的任何帮助将不胜感激
谢谢!