<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Adding capability to XQuery 3.1 at this stage will require a more convincing justification than “I felt the need for this in some edge cases”.</div><div class=""><br class=""></div><div class="">Are there other functional languages that offer such a feature?</div><div class=""><br class=""></div><div class="">Michael Kay</div><div class="">Saxonica</div><br class=""><div><blockquote type="cite" class=""><div class="">On 6 Jul 2015, at 08:30, Christophe Geiser <<a href="mailto:christophe.geiser@e-smile.org" class="">christophe.geiser@e-smile.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="markdown-here-wrapper" style=""><div style="margin: 0.8em 0px !important;" class="">Dear all,<br class="">Thanks Wouter for initiating this discussion. </div><div style="margin: 0.8em 0px !important;" class="">I’d like to add another feature request to the current implementation of the language : the ability to retrieve the current function being executed. I could not find a work-around for implementing this, and - now with functions being first-class citizens of the language - felt the need for this capability in some edge cases.</div><div style="margin: 0.8em 0px !important;" class="">Something like :</div>
<pre style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;font-size:1em;line-height:1.2em;margin:1.2em 0px" class=""><code style="font-size:0.85em;font-family:Consolas,Inconsolata,Courier,monospace;margin:0px 0.15em;padding:0px 0.3em;white-space:pre-wrap;border:1px solid rgb(234,234,234);border-radius:3px;display:inline;background-color:rgb(248,248,248);white-space:pre;overflow:auto;border-radius:3px;border:1px solid rgb(204,204,204);padding:0.5em 0.7em;display:block;padding:0.5em;color:rgb(51,51,51);background:rgb(248,248,255)" class="">
declare function local:test($arg) { 
  let $function := function-item() (: would return local:test#1 as function item :) 
  return () 
};
</code></pre><div style="margin: 0.8em 0px !important;" class="">Thanks and best regards,<br class="">Christophe Geiser</div><div style="margin: 0.8em 0px !important;" class=""><br class=""></div>
<hr class=""><div style="margin: 0.8em 0px !important;" class="">Hello,<br class=""> I’ve been working with the recent xquery 3.1 implementation in the develop branch eXist-db. I encountered some cases that were quite hard to work around:  </div>
<ul style="margin:1.2em 0px;padding-left:2em" class="">
<li style="margin:0.5em 0px" class="">the lack of array:index-of() - the lack of the iterator index in arrayfor-each and related higher-order functions<br class="">Perhaps someone of the workgroup is available to discuss those cases.  <h2 id="thanks-wouter-" style="margin:1.3em 0px 0.3em;padding:0px;font-weight:bold;font-size:1.4em;border-bottom-width:1px;border-bottom-style:solid;border-bottom-color:rgb(204,204,204)" class="">Thanks, Wouter </h2>
</li>
</ul><div style="margin: 0.8em 0px !important;" class="">W.S. Hager Lagua Web Solutions <a href="http://lagua.nl/" class="">http://lagua.nl</a>  </div>
<div title="MDH:PHAgc3R5bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7
IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsg
Zm9udC1zaXplOiAxNC4zOTk5OTk2MTg1MzAzcHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij5EZWFyIGFs
bCwgPC9wPjxwIHN0eWxlPSJwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDAs
IDAsIDApOyBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgJ0x1eGkgU2FucycsIHNhbnMt
c2VyaWY7IGZvbnQtc2l6ZTogMTQuMzk5OTk5NjE4NTMwM3B4OyB3aGl0ZS1zcGFjZTogcHJlOyI+
VGhhbmtzIFdvdXRlciBmb3IgaW5pdGlhdGluZyB0aGlzIGRpc2N1c3Npb24uIDwvcD48cCBzdHls
ZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1m
YW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsICdMdXhpIFNhbnMnLCBzYW5zLXNlcmlmOyBmb250LXNp
emU6IDE0LjM5OTk5OTYxODUzMDNweDsgd2hpdGUtc3BhY2U6IHByZTsiPjxicj48L3A+PHAgc3R5
bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQt
ZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsgZm9udC1z
aXplOiAxNC4zOTk5OTk2MTg1MzAzcHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij5JJ2QgbGlrZSB0byBh
ZGQgYW5vdGhlciBmZWF0dXJlIHJlcXVlc3QgdG8gdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24g
b2YgdGhlIGxhbmd1YWdlIDogdGhlIGFiaWxpdHkgdG8gcmV0cmlldmUgdGhlIGN1cnJlbnQgZnVu
Y3Rpb24gYmVpbmcgZXhlY3V0ZWQuIEkgY291bGQgbm90IGZpbmQgYSB3b3JrLWFyb3VuZCBmb3Ig
aW1wbGVtZW50aW5nIHRoaXMsIGFuZCBub3cgd2l0aCBmdW5jdGlvbnMgYmVpbmcgZmlyc3QtY2xh
c3MgY2l0aXplbnMgb2YgdGhlIGxhbmd1YWdlLCBmZWx0IHRoZSBuZWVkIGZvciB0aGlzIGNhcGFi
aWxpdHkgaW4gc29tZSBlZGdlIGNhc2VzLjwvcD48cCBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJn
aW46IDBweDsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRp
Y2EsICdMdXhpIFNhbnMnLCBzYW5zLXNlcmlmOyBmb250LXNpemU6IDE0LjM5OTk5OTYxODUzMDNw
eDsgd2hpdGUtc3BhY2U6IHByZTsiPjxicj48L3A+PHAgc3R5bGU9InBhZGRpbmc6IDBweDsgbWFy
Z2luOiAwcHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0
aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsgZm9udC1zaXplOiAxNC4zOTk5OTk2MTg1MzAz
cHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij5Tb21ldGhpbmcgbGlrZSA6PC9wPjxwIHN0eWxlPSJwYWRk
aW5nOiAwcHg7IG1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTog
QXJpYWwsIEhlbHZldGljYSwgJ0x1eGkgU2FucycsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTQu
Mzk5OTk5NjE4NTMwM3B4OyB3aGl0ZS1zcGFjZTogcHJlOyI+PGJyPjwvcD48cCBzdHlsZT0icGFk
ZGluZzogMHB4OyBtYXJnaW46IDBweDsiPmBgYDxicj48YnI+ZGVjbGFyZSBmdW5jdGlvbiBsb2Nh
bDpzaWduYXR1cmUoJGFyZykgeyZuYnNwOzwvcD48cCBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJn
aW46IDBweDsiPiZuYnNwOyBsZXQgJGZ1bmN0aW9uIDo9IGZ1bmN0aW9uLWl0ZW0oKSAoOiB3b3Vs
ZCByZXR1cm4gbG9jYWw6c2lnbmF0dXJlIzEgYXMgZnVuY3Rpb24gaXRlbSA6KSZuYnNwOzwvcD48
cCBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsiPiZuYnNwOyByZXR1cm4gKCkmbmJz
cDs8L3A+PHAgc3R5bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7Ij59Ozxicj48YnI+YGBg
PC9wPjxwIHN0eWxlPSJwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4OyI+PGZvbnQgY29sb3I9IiMw
MDAwMDAiIGZhY2U9IkFyaWFsLCBIZWx2ZXRpY2EsIEx1eGkgU2Fucywgc2Fucy1zZXJpZiI+PHNw
YW4gc3R5bGU9IndoaXRlLXNwYWNlOiBwcmU7Ij5UaGFua3MgYW5kIGJlc3QgcmVnYXJkcyw8L3Nw
YW4+PC9mb250PjwvcD48cCBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsgY29sb3I6
IHJnYigwLCAwLCAwKTsgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsICdMdXhpIFNhbnMn
LCBzYW5zLXNlcmlmOyB3aGl0ZS1zcGFjZTogcHJlOyI+Q2hyaXN0b3BoZSBHZWlzZXI8L3A+PHAg
c3R5bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZv
bnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsgZm9u
dC1zaXplOiAxNC4zOTk5OTk2MTg1MzAzcHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij48YnI+PC9wPjxw
IHN0eWxlPSJwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBm
b250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgJ0x1eGkgU2FucycsIHNhbnMtc2VyaWY7IGZv
bnQtc2l6ZTogMTQuMzk5OTk5NjE4NTMwM3B4OyB3aGl0ZS1zcGFjZTogcHJlOyI+PGJyPjwvcD48
cCBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsgY29sb3I6IHJnYigwLCAwLCAwKTsg
Zm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsICdMdXhpIFNhbnMnLCBzYW5zLXNlcmlmOyBm
b250LXNpemU6IDE0LjM5OTk5OTYxODUzMDNweDsgd2hpdGUtc3BhY2U6IHByZTsiPjxicj48L3A+
PHAgc3R5bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7
IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsg
Zm9udC1zaXplOiAxNC4zOTk5OTk2MTg1MzAzcHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij4tLS08L3A+
PHAgc3R5bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7
IGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsg
Zm9udC1zaXplOiAxNC4zOTk5OTk2MTg1MzAzcHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij5IZWxsbywK
PC9wPjxwIHN0eWxlPSJwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDAsIDAs
IDApOyBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgJ0x1eGkgU2FucycsIHNhbnMtc2Vy
aWY7IGZvbnQtc2l6ZTogMTQuMzk5OTk5NjE4NTMwM3B4OyB3aGl0ZS1zcGFjZTogcHJlOyI+Ckkn
dmUgYmVlbiB3b3JraW5nIHdpdGggdGhlIHJlY2VudCB4cXVlcnkgMy4xIGltcGxlbWVudGF0aW9u
IGluIHRoZSBkZXZlbG9wCmJyYW5jaCBlWGlzdC1kYi4gSSBlbmNvdW50ZXJlZCBzb21lIGNhc2Vz
IHRoYXQgd2VyZSBxdWl0ZSBoYXJkIHRvIHdvcmsKYXJvdW5kOgoKPC9wPjxwIHN0eWxlPSJwYWRk
aW5nOiAwcHg7IG1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTog
QXJpYWwsIEhlbHZldGljYSwgJ0x1eGkgU2FucycsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTQu
Mzk5OTk5NjE4NTMwM3B4OyB3aGl0ZS1zcGFjZTogcHJlOyI+LSB0aGUgbGFjayBvZiBhcnJheTpp
bmRleC1vZigpCi0gdGhlIGxhY2sgb2YgdGhlIGl0ZXJhdG9yIGluZGV4IGluIGFycmF5Zm9yLWVh
Y2ggYW5kIHJlbGF0ZWQgaGlnaGVyLW9yZGVyCmZ1bmN0aW9ucwoKPC9wPjxwIHN0eWxlPSJwYWRk
aW5nOiAwcHg7IG1hcmdpbjogMHB4OyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LWZhbWlseTog
QXJpYWwsIEhlbHZldGljYSwgJ0x1eGkgU2FucycsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZTogMTQu
Mzk5OTk5NjE4NTMwM3B4OyB3aGl0ZS1zcGFjZTogcHJlOyI+UGVyaGFwcyBzb21lb25lIG9mIHRo
ZSB3b3JrZ3JvdXAgaXMgYXZhaWxhYmxlIHRvIGRpc2N1c3MgdGhvc2UgY2FzZXMuCgo8L3A+PHAg
c3R5bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZv
bnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsgZm9u
dC1zaXplOiAxNC4zOTk5OTk2MTg1MzAzcHg7IHdoaXRlLXNwYWNlOiBwcmU7Ij5UaGFua3MsCldv
dXRlcgo8L3A+PGRpdiBjbGFzcz0iIiBzdHlsZT0iZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRp
Y2EsICdMdXhpIFNhbnMnLCBzYW5zLXNlcmlmOyBmb250LXN0eWxlOiBpdGFsaWM7IHdoaXRlLXNw
YWNlOiBwcmU7IGNvbG9yOiByZ2IoMCwgMCwgMCk7IGZvbnQtc2l6ZTogMTQuMzk5OTk5NjE4NTMw
M3B4OyI+PHAgc3R5bGU9InBhZGRpbmc6IDBweDsgbWFyZ2luOiAwcHg7Ij4tLSAKCjwvcD48L2Rp
dj48ZGl2IGNsYXNzPSIiIHN0eWxlPSJmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgJ0x1
eGkgU2FucycsIHNhbnMtc2VyaWY7IGZvbnQtc3R5bGU6IGl0YWxpYzsgd2hpdGUtc3BhY2U6IHBy
ZTsgY29sb3I6IHJnYigwLCAwLCAwKTsgZm9udC1zaXplOiAxNC4zOTk5OTk2MTg1MzAzcHg7Ij48
cCBzdHlsZT0icGFkZGluZzogMHB4OyBtYXJnaW46IDBweDsiPlcuUy4gSGFnZXIKTGFndWEgV2Vi
IFNvbHV0aW9ucwo8YSBjbGFzcz0iIiBocmVmPSJodHRwOi8vbGFndWEubmwvIiByZWw9Im5vZm9s
bG93IiBzdHlsZT0iY29sb3I6IHJnYigwLCAwLCAxNTMpOyI+aHR0cDovL2xhZ3VhLm5sPC9hPgoK
PC9wPjwvZGl2PjxkaXYgY2xhc3M9IiIgc3R5bGU9ImZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0
aWNhLCAnTHV4aSBTYW5zJywgc2Fucy1zZXJpZjsgZm9udC1zdHlsZTogaXRhbGljOyB3aGl0ZS1z
cGFjZTogcHJlOyBjb2xvcjogcmdiKDAsIDAsIDApOyBmb250LXNpemU6IDE0LjM5OTk5OTYxODUz
MDNweDsiPjxwIHN0eWxlPSJwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4OyI+PGJyPjwvcD48L2Rp
dj48ZGl2Pjxicj48L2Rpdj4=" style="height:0;width:0;max-height:0;max-width:0;overflow:hidden;font-size:0em;padding:0;margin:0" class="">​</div></div>-- <br class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class="">
        
        
        


<table width="333" cellpadding="3" cellspacing="0" class="">
        <colgroup class=""><col width="118" class="">
        <col width="203" class="">
        </colgroup><tbody class=""><tr valign="TOP" class="">
                <td width="118" style="border:none;padding:0in" class=""><p style="text-align:center" class=""><a href="https://www.e-smile.org/" target="_blank" class=""><img src="https://docs.google.com/uc?export=download&id=0B2IohNLY0RAKaHZXZzM3a3RpQWM&revid=0B2IohNLY0RAKVjFCRDF0UG1LamVDNTdhSGhDQ2ZjTGFWVTNNPQ" class=""></a><br class="">
                        </p><p style="text-align:center" class=""><a href="https://plus.google.com/+E-smileOrg" target="_blank" class=""><img src="https://docs.google.com/uc?export=download&id=0B2IohNLY0RAKZ1l0RERRNDNvOU0&revid=0B2IohNLY0RAKQzVCaTh4Mkd0N2kxZ1gwVmljdWJLdW9tR3o4PQ" class=""></a><a href="https://twitter.com/esmileSolution" target="_blank" class=""><img src="https://docs.google.com/uc?export=download&id=0B2IohNLY0RAKcV9iYmZoZDR0LUE&revid=0B2IohNLY0RAKR295bVRsbzFQSy9tamR4M3cvamJlVzRQS21RPQ" class=""></a><a href="https://github.com/e-smile" target="_blank" class=""><img src="https://docs.google.com/uc?export=download&id=0B2IohNLY0RAKSlZtRk1xMks5NTQ&revid=0B2IohNLY0RAKSkRHcHhIdm9FTThCZkdwd1ViSlBlalQ4M1FRPQ" class=""></a><br class=""></p>
                </td>
                <td width="203" style="border-style:none none none solid;border-left-width:1px;border-left-color:rgb(0,0,0);padding:0in 0in 0in 0.04in" class=""><p class=""><b class=""><font size="2" color="#444444" class="">Christophe Geiser</font><br class=""></b><font color="#666666" size="1" class="">Founder of e-smile</font></p><p class=""><a href="http://e-smile.org/" target="_blank" class=""><font color="#999999" size="1" class="">e-smile.org</font></a></p><p style="margin-left:0in;margin-right:0in" class=""><font color="#999999" size="1" class="">Never give up on a dream just because of the time it will take to accomplish it. The time will pass anyway.</font></p>
                </td>
        </tr>
</tbody></table><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""><div dir="ltr" class=""></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div>
_______________________________________________<br class=""><a href="mailto:talk@x-query.com" class="">talk@x-query.com</a><br class="">http://x-query.com/mailman/listinfo/talk</div></blockquote></div><br class=""></body></html>