Subject: Re: [xsl] RM: RFC: Instrinsically-defined maps? From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Wed, 16 Apr 2014 06:53:53 -0700 |
A very quick comment, as I am leaving for work: this all seems straight-forward using XSLT (XPath) 3. In the case of arity > 1, we will use a map of maps (the inner maps will represent partial application of the function. The saxon:memo-function attribute has, I think, its standard equivalent (at least a hint) in XSLT 3.0 Cheers, Dimitre On Wed, Apr 16, 2014 at 2:51 AM, David Rudel <fwqhgads@xxxxxxxxx> wrote: > Consider Xpath functions, Xpath maps, and Saxon Memo-functions: > A. maps and memo-functions allow caching. > B. Xpath functions and memo-functions allow computing of outputs based > on heretofore unseen inputs "on the fly" using intrinsic logic. They > also allow arities other than 1. > C. Xpath maps allow access to the keys of the hash. > > It would be nice to be able to have the features of all 3 in a single > type.... in other words a memo-function whose stored keys you could > retrieve. > > Unfortunately, there are two major barriers (in my mind, at least) to > accomplishing the above: > > Saxon memo-functions are the closest thing to getting all 3, but XSLT > functions are not first-class objects, so it isn't clear how you would > direct the processor to operate on them. Also, it is not clear how the > keys should be presented if the arity is greater than 1. > > For the case where arity = 1, the most natural solution would be to > allow an intrinsic definition for the map that could be used whenever > any of the extrinsic declarations are not applicable. Something like > > <xsl:variable name="default.function" as="function(xs:integer) as > xs:integer" select="function($x){$x + 3}"/> > > <xsl:variable name="non.static.map" as="map(xs:integer,xs:integer)" > select="map{2:= 4, 3:= 5, $default.function}"/> > > The idea would be that if $non.static.map were called with an > xs:integer argument other than {2,3}, then it would return the value > "input + 3" and store that input-output pair in its hash. > > Comments? > -David > > -- > > "A false conclusion, once arrived at and widely accepted is not > dislodged easily, and the less it is understood, the more tenaciously > it is held." - Cantor's Law of Preservation of Ignorance. > -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- To avoid situations in which you might make mistakes may be the biggest mistake of all ------------------------------------ Quality means doing it right when no one is looking. ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play ------------------------------------- To achieve the impossible dream, try going to sleep. ------------------------------------- Facts do not cease to exist because they are ignored. ------------------------------------- Typing monkeys will write all Shakespeare's works in 200yrs.Will they write all patents, too? :) ------------------------------------- I finally figured out the only reason to be alive is to enjoy it.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] RM: RFC: Instrinsically-defin, David Rudel | Thread | Re: [xsl] RM: RFC: Instrinsically-d, Michael Kay |
[xsl] RM: RFC: Instrinsically-defin, David Rudel | Date | Re: [xsl] RM: RFC: Instrinsically-d, Michael Kay |
Month |