Re: Making a new definition of Equal work with lists as well

*To*: mathgroup at smc.vnet.net*Subject*: [mg63368] Re: Making a new definition of Equal work with lists as well*From*: "Jean-Marc Gulliet" <jeanmarc.gulliet at gmail.com>*Date*: Tue, 27 Dec 2005 04:42:38 -0500 (EST)*Organization*: The Open University, Milton Keynes, U.K.*References*: <doohbr$kua$1@smc.vnet.net>*Sender*: owner-wri-mathgroup at wolfram.com

"Dan Bernstein" <dan.bernstein at gmail.com> a écrit dans le message de news: doohbr$kua$1 at smc.vnet.net... | Hi, | | I have defined | Equal[a_CL,b_CL] := a[[1]]-a[[2]] == b[[1]]-b[[2]] | and then | CL[2,3] == CL[4,5] | CL[2,3] == CL[2,4] | evaluate to True and False respectively, as expected. However, | {CL[2,3]} == {CL[4,5]} | just stays in that form. | | What should I do to make list equality use my "CL equality"? | | Thanks in advance, | -- Dan Bernstein | Hi Dan, A quick way is to use alternative patterns as in In[1]:= Unprotect[Equal]; ((a_CL) | {a_CL}) == ((b_CL) | {b_CL}) := a[[1]] - a[[2]] == b[[1]] - b[[2]] Protect[Equal]; In[4]:= CL[2, 3] == CL[4, 5] CL[2, 3] == CL[2, 4] Out[4]= True Out[5]= False In[6]:= {CL[2, 3]} == {CL[4, 5]} {CL[2, 3]} == {CL[2, 4]} Out[6]= True Out[7]= False In[8]:= CL[2, 3] == {CL[4, 5]} {CL[2, 3]} == CL[2, 4] Out[8]= True Out[9]= False Best regards, /J.M.