Re: [xsl] Cheaper to prepend or append an item to a sequence?

Subject: Re: [xsl] Cheaper to prepend or append an item to a sequence?
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Tue, 22 Feb 2011 22:07:37 +0000
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

Current Thread