>>>>> "Stavros" == Stavros Macrakis <macrakis at alum.mit.edu> writes:
Stavros> For small lists/arrays, in many applications, it simply doesn't
Stavros> matter. I agree with Robert that we should move to a system where the
Stavros> abstract concept is primary, and the underlying implmentation
Stavros> secondary. Ideally, we would have representation be "advice" to the
I agree with this abstract concept. Except I think lists should be
lists and arrays should be arrays. Perhaps because I know Lisp far
better than I know Maxima, so I like lists that are lists. :-)
Stavros> system which does not change semantics, only performance, e.g.
Stavros> declare( li, listarray)
Stavros> declare( ar, arrayarray)
Stavros> li: ar: [1,2,3]$
Stavros> length(li) = length(ar) = 3
Stavros> li => [1,2,3]
Stavros> ar => [1,2,3]
Stavros> append(li,ar) => [1,2,3,1,2,3]
Stavros> (what are the sharing semantics here?)
Stavros> (what is the representation of the intermediate result?)
Stavros> etc.
While this might be a nice idea, I, for one, would be way to lazy to
modify all the functions that take lists to also accept arrays and
vice versa and making them work reasonably fast for lists and
arrays.
Ray