我正在尝试实现BitXor的一个变体,它接受两个真值列表作为输入,并返回元素级别的Xor真值列表作为输出。
MyXor = Thread[Xor[#, #2]] &;它工作得很好,除非输入是相同的。我希望能得到
{False,False,False,False,False,False,...}但我只是得到了
False有没有办法绕过这个问题,而不是强制函数检查这种情况并重新构造输出的False列表?
发布于 2013-04-10 04:36:24
问题是,当to参数相同时,Xor总是给出False。一种解决方案是避免对Thread中的Xor进行评估
MyXor = Thread[Unevaluated[Xor[#, #2]]] &
l = RandomChoice[{True, False}, 10];
MyXor[l, l]https://stackoverflow.com/questions/15908881
复制相似问题