Re: And, Or, Intersection, Union - no Orderless attribute
- To: mathgroup at smc.vnet.net
- Subject: [mg24014] Re: And, Or, Intersection, Union - no Orderless attribute
- From: hwolf at debis.com
- Date: Tue, 20 Jun 2000 03:07:31 -0400 (EDT)
- Organization: debis Systemhaus
- References: <8ikcli$qgu@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Drago Ganic schrieb: > > Hi Mathgroup !! > > Is there any reason that the symbols > > And, > Or, > Intersection, > Union > > do not have the Orderless attribute (but do have the Flat attribute). > > These operations are commutative (as far as I know). We can see this fo And and Or if we use LogicalExpand > > In[1]: b && c && a > Out[1]: b && c && a > > In[2]: LogiclaExpand[%] > Out[2]: a && b && c > > Why, why ?? > > Drago Ganic > Croatia Hello Drago, "And" not only has a logical meaning, but also a procedural semantics. See this example: In[4]:= a := (Print["-false-"]; False); b := (Print["-true-"]; True); c := (Print["-true-"]; True); In[6]:= b && c && a >From In[6]:= "-true-" >From In[6]:= "-true-" >From In[6]:= "-false-" Out[6]= False In[7]:= a && b && c >From In[7]:= "-false-" Out[7]= False Now: In[8]:= Unprotect[And] In[9]:= SetAttributes[And, Orderless] In[10]:= b && c && a >From In[10]:= "-false-" Out[10]= False So Orderless would destroy this (important!) behaviour. Kind regards, Hartmut Wolf