Even with a forward-chained list, you can implement append without copying
if you choose, at least for the first append operation to a given list
(which 9 times out of 10 will be the only append operation).
How is that? If I have X=[1,2,3] ; Y=X ; Z=Y++[4]
How can Z append Y without copying it first?
When one list A is a sublist of another list B, A does not need separate
storage - it can be implemented by means of pointers to the first and
last items from B that are to be included in A. Therefore if A is not
already a sublist of another list, you can create B by making a longer
list and making A a sublist of the new list. Saxon does this using
arrays rather than linked lists, but the same principle would work
either way.
Michael Kay
Saxonica
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--