On Tue, Sep 14, 2010 at 08:57:58PM +0200, [email protected] wrote: > Seva Gluschenko Wrote: > ------------------------------------------------------- > > first two expressions aren't exactly equivalent. > > !Sunday.!Morning.!dev_env.!phost is equal to > > !(Sunday|Morning|dev_env|phost). > > I don't understand how those can be the same.
As Daniel said, this is De Morgan's law. To visualize it better just take simpler expression with two operands and calculate all possible combinations manually (S=Sunday, M=Morning): |-------+-------+----------+---------+---------+----------| | S | M | !(S . M) | !S | !M | !S . !M | !(S | M) | |--------+------+----------+---------+---------+----------| | False | False | True | True | True | True | | False | True | True | True | False | False | | True | False | True | True | False | False | | True | True | False | False | False | False | |-------+-------+----------+---------+---------+----------| Back to your examples: > 1. !(Sunday.Morning.dev_env.phost) This yields as True when at least one operand is False. > 2. !Sunday.!Morning.!dev_env.!phost And this expression is True only when all operands are False. Hope this helps. _______________________________________________ Help-cfengine mailing list [email protected] https://cfengine.org/mailman/listinfo/help-cfengine
