: , , , , (, + " " " ints" ) "" , ). , , , , , , . , "" , , .
, , ( ), Bits Data.Bits.
, :
-- note, the polymorphic `t` has cooties, and we'd need to be able to
-- make the caller polymorphic in a sensible way too for this to make sense
rule :: (Bits t) => U t -> t
rule (U (a:_) b (c:_)) = complement (a .&. b .&. complement c .|. complement (a `xor` b))
- a == b complement (a ``xor`` b). , (AND/OR/NOT), == :
a .==. b = complement ((a .|. b) .&. complement (a .&. b))
, ( , ), . - Int. Int, "" . , ? Bits - ?
: - : , . , Wolfram Alpha, , c ( , - ), :
rule (U (a:_) b _) = (a && not b) || (not a && b)
( c ?) .