2

我正在尝试实现 BitXor 的变体,它将两个真值列表作为输入,并返回逐元素 Xor 真值列表作为输出。

MyXor = Thread[Xor[#, #2]] &;

它工作正常,除非输入相同。我希望得到

{False,False,False,False,False,False,...}

但我只是得到

False

有没有办法解决这个问题,而不强制函数检查这种情况并重建 False 列表以输出?

4

1 回答 1

0

问题是当 to 参数相同时Xor总是给出。一种解决方案是False阻止评估XorThread

MyXor = Thread[Unevaluated[Xor[#, #2]]] &

l = RandomChoice[{True, False}, 10];
MyXor[l, l]
于 2013-04-09T20:36:24.347 回答