"John.Cowan" <xxxxxx@reutershealth.com> writes:
> Granted, Scheme vectors could be implemented as sparse arrays (and Scheme
> strings as cords). For that matter, both could be implemented as lists,
> given a magic first cell that makes them disjoint from Scheme lists.
> And for that mattter, Scheme lists could be implemented as machine-level
> vectors, provided you are willing to live with all the behind-the-scenes
> copying that would be required. Numbers could be Church numerals, and so on.
>
> But if Scheme vectors don't have O(1) performance (actually O(log k) on
> modern hardware) in a given implementation, users are likely to vote
> with their feet.
You seem to have a flat-footed way of thinking about these things. An
implementation could use sparse arrays for long arrays with empty
space and linear arrays for those which are compact. What is wrong
with that?
Are you saying people will vote with their feet, leaving an
implementation which provides for a certain kind of array using a
sparse implementation, and choosing instead an implementation which
doesn't provide for that kind at all?
Once again, you are thinking that a Scheme datatype must be wedded to
one and only one implementation. Wrong!
Thomas