Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Expression Changes #99
Some thoughts on the current state of expressions.
The inverted forms (nor, nand, xnor, unequal) are a bit silly. There isn't any reason having them in an expression tree is superior to just wrapping the or/and/xor/equal with a NOT operator. I think I originally added them b/c there was some nice symmetry with the
Related to the previous point, currently the NOT operator automatically eliminates "double negatives". For example, it will convert NOT(XNOR(x)) to just XOR(x). Since
There is a nice benefit to having expressions automatically cache their inverse. That is, X should always have a reference to
Simplification needs some work too. It will make the code much cleaner if we stop auto-simplifying trivial argument lists. For example,