2013-04-09 113 views
2

我試圖實現一個BitXor的變體,它將兩個真值作爲輸入列表並返回元素方式Xor真值作爲輸出列表。Xor線程和虛假列表

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

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

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

但我只是得到

False 

有沒有解決這個辦法,而不強制函數來檢查這種情況下,重建的假名單輸出?

回答

0

問題是Xor總是給出False當參數是相同的。一種解決方案是保持XorThread之內免於評估

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

l = RandomChoice[{True, False}, 10]; 
MyXor[l, l]