[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message]

Global variables in XQuery

Michael Kay mhk at mhk.me.uk
Thu Oct 5 12:52:15 PDT 2006


  Global variables in XQuery
> Nevertheless, there are 
> many occasions in which a programmer needs to both read and 
> write a global variable, especially when recursive functions 
> are involved. For instance, suppose I want to know the number 
> of recursive calls of my recursive function (this number is 
> an lower bound of the space complexity of the function). 

This kind of use-case - producing a secondary result that's essentially
diagnostic or instrumentation output - was what motivated me to add
saxon:assign to my XSLT processor, a decision I have bitterly regretted
because it gets abused by people who just use it to write pure procedural
code which has a nasty habit of breaking under optimization. In the light of
this experience I think the proposal currently on the table to add
procedural extensions to XQuery (mentioned by Jonathan) is probably a bad
idea. I think it's much better to use a procedural pipeline language [1] to
string together non-procedural components to assemble an application.

The right way to implement a counter for instrumentation purposes is
probably by calling an extension function.

[1] http://www.w3.org/TR/xproc/


Michael Kay
http://www.saxonica.com/



PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2011 All Rights Reserved.