Re: Making a new definition of Equal work with lists as well
- To: mathgroup at smc.vnet.net
- Subject: [mg63369] Re: Making a new definition of Equal work with lists as well
- From: Bill Rowe <readnewsciv at earthlink.net>
- Date: Tue, 27 Dec 2005 04:42:39 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
On 12/26/05 at 4:59 AM, dan.bernstein at gmail.com (Dan Bernstein)
wrote:
>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"?
There are two ways I can think of to accomplish this. First, you can use SetAttributes to give Equal the Listable attribute, i.e.,
SetAttributes[Equal, Listable]
then {CL[2,3]} == {CL[4,5]} will evaluate to {True}. But, making Equal Listable may have some undesired side effects on other usages of Equal I haven't considered. Modifying commonly used built-in functions in this manner is risky.
An alternative would be to add another definition for equal, i.e.,
Equal[{a_CL},{b_CL}]:= Equal[a,b]
Doing things this way prevents side effects since this definition only operates on lists with one element with head CL
--
To reply via email subtract one hundred and four