- From: Dimitre Novatchev <dnovatchev@gmail.com>
- Date: Sat, 9 Jan 2021 15:34:57 -0800
- To: Michael Kay <mike@saxonica.com>
- Cc: "Liam R. E. Quin" <liam@fromoldbooks.org>, public-xslt-40@w3.org
- Message-ID: <CAK4KnZddNAC_wLHP0m-qXObRgcXikt_=0LfLZitEFmsOaz62AQ@mail.gmail.com>
On Sat, Jan 9, 2021 at 3:18 PM Michael Kay <mike@saxonica.com> wrote: > > > > Surely, there is even no need to iterate at all, if we have the syntax > below: > > > > <xsl:array member-source="*" member-generator="my:mapHistory"/> > > > > Here, the XSLT processor is calling my:mapHistory() once for every item > in member-source, and the result of the call is the corresponding, Nth > member of the array. > > > > This feels very counter-intuitive to me. Perhaps you could flesh out the > use case I supplied to see what the full solution looks like. > This addresses the issue you raised for providing the members of an array that is to be constructed. As for the other use case, I already +1ed one of the alternatives that you proposed: <xsl:for-each-member select="array" bind-to="member" position="pos"> <xsl:if test="$pos ne 1">,</xsl:if> <xsl:for-each select="$member"> ... +1 again, if it was not seen at: https://lists.w3.org/Archives/Public/public-xslt-40/2021Jan/0001.html As for something being counter-intuitive, this is rather personal and not objective. A better metric is the amount of code that needs to be written and to what extent a proposed solution is (cumbersome and) error-prone. With a member-generator function, one is not being syntax- or location- bound, which, among other things, leads to greater reusability. Also no need for the developer to have to memorize imposed, complicated and unnecessary syntax, as this syntax will not exist. Thanks, Dimitre > > Michael Kay > Saxonica
Received on Saturday, 9 January 2021 23:35:21 UTC