Patterns
- To: mathgroup at smc.vnet.net
- Subject: [mg7647] Patterns
- From: mabi at solidmr.kun.nl (Marlies Brinksma)
- Date: Tue, 24 Jun 1997 03:36:10 -0400 (EDT)
- Sender: owner-wri-mathgroup at wolfram.com
Hi all, I don't understand why the following implementation results in an infinite recursion. Does anyone know what the problem is? Thanks in advance for any help! Best regards, Marlies Brinksma ***************************************************************************** In[1]:= Unprotect[NonCommutativeMultiply]; In[2]:= Default[NonCommutativeMultiply]=1; In[3]:= NonCommutativeMultiply[a_,1]:= a NonCommutativeMultiply[1,a_]:=a (* This is the rule which causes the infitite recursion *) In[5]:= NonCommutativeMultiply[a_.,b_?NumberQ,c_.]:= Times[b,NonCommutativeMultiply[a,c]] In[6]:= NonCommutativeMultiply[term1,5] Out[6]= 5 term1 In[7]:= NonCommutativeMultiply[5, term2] Out[7]= 5 term2 In[8]:= NonCommutativeMultiply[term1,5, term2 ] $RecursionLimit::"reclim": "Recursion depth of \!\(256\) exceeded." $RecursionLimit::"reclim": "Recursion depth of \!\(256\) exceeded." $RecursionLimit::"reclim": "Recursion depth of \!\(256\) exceeded." General::"stop": "Further output of \!\($RecursionLimit :: \"reclim\"\) will be suppressed \ during this calculation." Out[8]= 5 term1**term2 In[9]:= FullForm[%] Out[9]//FullForm= Times[5,NonCommutativeMultiply[term1,term2]]