Re: is/equal for lists/matrices -- design note



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/