Subject: Re: is/equal for lists/matrices -- design note
From: Robert Dodier
Date: Wed, 28 Jan 2004 08:26:20 -0800 (PST)
Hello Stavros,
Thank you for your detailed consideration of the issues
surrounding equality for composite objects. I think the
compar-patch.lisp you posted is a substantial improvement.
In summary, I recommend that Maxima continue to return
UNKNOWN for difficult cases. However I also recommend
that this issue be kept on the back burner. I have some
opinions about how it could eventually be handled.
I think the whole issue of equality would be much simpler
if there were fewer kinds of objects, so my first opinion
is that (from the user's point of view) there should be
fewer object types. Certainly there can be different
programming types underneath the hood, but these should be
much less visible to the user. For example, a two-dimensional
array of any type, a list of lists of equal length, and a
matrix could all be "the same thing" from the user's pov.
Of course hiding types in that manner is a long ways off,
at best. As I was saying -- on the back burner.
Given that, there are still subtleties to equality, but
Maxima could agree on a policy, such as "equality w.r.t.
scalar product" as you suggested, and that would be
comprehensible and useful, I think.
In between continuing the current policy, and revising the
bag types -- I think Maxima could try a little harder to
determine if two things are definitely not equivalent.
For example, 2-d arrays are definitely not equivalent to 3-d
arrays, are they not? And: a list of lists is not equivalent
to another if there are different numbers of elements in
each sublist.
Thanks again for your interest in this topic.
Robert Dodier
__________________________________
Do you Yahoo!?
Yahoo! SiteBuilder - Free web site building tool. Try it!
http://webhosting.yahoo.com/ps/sb/