Re: Reference and First-Class Function
Dimitre Novatchev <[email protected]> Tue, 16 Dec 2008 06:53:36 -0800 (PST)
| Newsgroups | gmane.text.xml.xslt.extensions |
|---|---|
| Message-ID | <[email protected]> |
> I've written a few words about references and firs-class functions > on the wiki, based on previous discussions. Even if they do not > necessarily represent a consensus, I thought that would be a useful > way to support discussions: > > http://www.fgeorges.org/exslt2-wiki/Reference > http://www.fgeorges.org/exslt2-wiki/First-Class_Function > I find that relating the topic of "reference" in XPath to the topic of "higher order functions" is both too general and round-about. Remember that the need for references originally arised from needing them in higher-order functions -- for currying. Now we are trying to implement "reference" by currying a function. This is a complete circle. At the same time I have defined in a quite formal and specific way what a "reference" is (the Ref object) and how to implement it in a way that allows both a reference to be representable by a storable value and to have a strict discipline of creating "copies" of references that can be used independently. This definition also solves the "leakage" problem. Read it here: http://lists.fourthought.com/pipermail/exslt/2008-December/001705.html Another remark is about the following text in the Wiki: "Implementations FXSL implements first-class functions and provides several higher-order function. It is entirely written in standard XSLT 2.0. Retrieved from "http://www.fgeorges.org/exslt2-wiki/First-Class_Function"" FXSL never implemented this even simply due to the fact that FXSL existed 6-7 years before this text was written. In fact FXSL implements higher-order functions in a completely different way and does not resort to or implement any extension functions. Finally, we don't need to re-invent HOF in XSLT and implement it in less portable ways while they have already been here for 6 years. Let's save the time of developers and allow them to concentrate on features that are not yet implemented. Cheers, Dimitre