Hi Jens,
I read your recursion proposal, but I do not really understand the need or
goal for such a syntax extension:
- is't the default XQuery function recursion more powerful?
- why not confine oneself to have an *internal* algebraic closure operator,
if that is such a useful abstraction?
Nor do I understand the need for the focus on nodes and set fixpoint
semantics. If the result expression is a sequence of nodes you may define
this to be duplicate-free and in document order, but it is less obvious why
atomic sequences should be treated like that. Order is a first-class citizen
in XQuery, and atomic types are also first-class. And what about element
construction? Isn't it obvious given the recursive nature of XML that people
may want to build XML documents with recursion -- so the choice to union all
results always is limiting.
I can imagine that *some* XQuery recursion patterns could be translated to
this fixpoint operator. Tail recursion is the big "success story" here
(given your node-union fixpoint semantics it will actually only be possible
in rare cases). However, given the fact that XQuery has for-loops, it is
quite unlikely in the first place that in the real world people will use
tail-recursion for iteration (this may distinguish XQuery from "purer"
functional languages). I conclude that this extension per-se does not help
in translating recursion in XQuery for the algebra backend at all (nor is it
its goal), rather places a second recursive vehicle beside it.
I am completely puzzled to hear such proposals from the usually
XQuery-standard-respecting community in Garching.
Finally, what exactly is "hacky" about the milprint_summer recursion
approach? Maybe you mean with "hacky" that it does not try to eliminate
recursion, and thus only works if the target language offers recursion. The
reality is that only trivial recursion patterns can be eliminated, so this
limitation will apply always. And you may forget, that a lot of recursion in
milprint_summer *is* eliminated, as all calls inside a for-loop are reduced
to one thanks to "loop-lifting" (maybe we could even "sell" this idea in the
FP community). So actually it surely is not as primitive/hacky as the
implementation of recursion in say Galax.
Defining myself as an engineer, I am aware of the limitations of my
knowledge and understanding of such formal issues.
ready to be educated..
Peter
-----Original Message-----
From: monetdb-developers-bounces@lists.sourceforge.net
[mailto:monetdb-developers-bounces@lists.sourceforge.net] On Behalf Of
monetdb-developers-request@lists.sourceforge.net
Sent: Saturday, September 23, 2006 12:14 AM
To: monetdb-developers@lists.sourceforge.net
Subject: Monetdb-developers Digest, Vol 4, Issue 13
Send Monetdb-developers mailing list submissions to
monetdb-developers@lists.sourceforge.net
To subscribe or unsubscribe via the World Wide Web, visit
https://lists.sourceforge.net/lists/listinfo/monetdb-developers
or, via email, send a message with subject or body 'help' to
monetdb-developers-request@lists.sourceforge.net
You can reach the person managing the list at
monetdb-developers-owner@lists.sourceforge.net
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Monetdb-developers digest..."
Today's Topics:
1. Upcoming feature: Recursion in Pathfinder (algebra) (Jens Teubner)
2. configure & *_config.h include files (Stefan Manegold)
3. Re: configure & *_config.h include files (Stefan Manegold)
4. Error with the Java Client (Jim Foley)
5. Re: Error with the Java Client (Fabian Groffen)
----------------------------------------------------------------------
Message: 1
Date: Fri, 22 Sep 2006 14:11:03 +0200
From: Jens Teubner