On 26/03/2016 07:35, Peter TB Brett wrote:
On 25/03/2016 23:00, Alex Tweedly wrote:
How about a Feature Exchange for adding arrays ? (i.e. not
dictionaries, but actual arrays with numeric indices and linear access
times)
In LiveCode, we currently call these "proper lists".
LiveCode arrays currently have O(log N) read and insertion complexity
in the general case (which is better than linear).
If we were to add proper lists, we would probably use an
implementation with O(1) read and O(N) insertion complexity in the
general case.
Yes, sorry, I said it badly, leading to some confusion.
I meant "linear access time" for accessing every element of the array in
turn - i.e. (roughly) equivalent to "constant access time" for an
individual access.
If you need proper lists, LiveCode Builder already provides them with
the "List" type.
I haven't found (can't find) a spec for LCB, so I'm not sure exactly
what "proper lists" are - but I think maybe not quite what I meant.
I was thinking of "proper arrays" :-) i.e. real, old-fashioned indexed
arrays - see Algol, Fortran, etc.
So we would have
read access in constant time
write access in constant time
insertion complexity - there is no such thing as insertion :-)
OK, given that we would never want to require array declarations to
define bounds, there might be some extra cost on extending the bounds,
but that would be occasional, so we would in general have constant
access time (for either read or write).
And, of course, if it were done in LCB it would be even more
advantageous because we would pre-define the data type, and hence be
able to do completely dense arrays, just like Fortran etc. (he said,
making about 50 wild assumptions about a language he can't find a spec
for :-)
Regards
-- Alex.
_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode