The error is in Basex 9.0.1 but not in 8.6.7. It seems to be caused by the 
presence of the function within the lambda function.

Universität Leipzig
Institute of Computer Science, NLP
Augustusplatz 10
04109 Leipzig
Deutschland
E-mail: cel...@informatik.uni-leipzig.de
E-mail: giuseppegacel...@gmail.com
Web site 1: http://www.dh.uni-leipzig.de/wo/team/
Web site 2: https://sites.google.com/site/giuseppegacelano/

> On May 11, 2018, at 12:52 PM, Sebastian Zimmer 
> <sebastian.zim...@uni-koeln.de> wrote:
> 
> Sorry to bother you again, but I think there is still something wrong with my 
> code and I can't figure it out. This time I checked it consistently on BaseX 
> 9.0.1 (Windows and Linux, console and web server), results are always the 
> same:
> 
> xquery version "3.1";
> declare namespace array = "http://www.w3.org/2005/xpath-functions/array"; 
> <http://www.w3.org/2005/xpath-functions/array>;
> 
> let $array1 := []
> let $array2 := array:for-each([], function($i) { lower-case($i) })
> let $array3 := array:for-each([], function($i) { $i + 1 })
> 
> return (
>   empty($array1!?*),
>   empty($array2!?*),
>   empty($array3!?*),
>   empty(
>     for $i in 1 to array:size($array1)
>     return $array1($i)
>   ),
>   empty(
>     for $i in 1 to array:size($array2)
>     return $array2($i)
>   ),
>   empty(
>     for $i in 1 to array:size($array3)
>     return $array3($i)
>   )
> )
> The results I get are:
> true
> false
> true
> true
> true
> true
> 
> Why isn't the second result "true" too?
> 
> Best regards,
> Sebastian
> 
> Am 11.05.2018 um 11:12 schrieb Sebastian Zimmer:
>> Hi again,
>> 
>> the problem is gone now after a reboot. It seems that the web server was 
>> running on another version while the console was running with 9.0.1
>> 
>> Sorry for the inconvenience.
>> 
>> Best,
>> Sebastian
>> 
>> Am 11.05.2018 um 11:04 schrieb Sebastian Zimmer:
>>> Hi Giuseppe,
>>> 
>>> thanks for checking. I double-checked again. The problem is even weirder 
>>> now:
>>> 
>>> When using the console, I too get 2x true:
>>> 
>>> $ ./bin/basex "./webapp/array_test.xql"
>>> true
>>> true
>>> 
>>> When using the web server, I still get this:
>>> 
>>> $ curl localhost:8994/rest?run=array_test.xql
>>> false
>>> true
>>> At first I thought there was some cache at work, preventing the update, but 
>>> it doesn't seem to be the case. I can edit the XQL und both outputs change 
>>> accordingly, but the first boolean is still different.
>>> 
>>> Best regards,
>>> Sebastian
>>> 
>>> Am 11.05.2018 um 08:28 schrieb Giuseppe Celano:
>>>> Hi Sebastian,
>>>> 
>>>> In my Basex 9.0.1 and 8.6.7 you get two "true". 
>>>> 
>>>> Best,
>>>> Giuseppe
>>>> 
>>>> Universität Leipzig
>>>> Institute of Computer Science, NLP
>>>> Augustusplatz 10
>>>> 04109 Leipzig
>>>> Deutschland
>>>> E-mail: cel...@informatik.uni-leipzig.de 
>>>> <mailto:cel...@informatik.uni-leipzig.de>
>>>> E-mail: giuseppegacel...@gmail.com <mailto:giuseppegacel...@gmail.com>
>>>> Web site 1: http://www.dh.uni-leipzig.de/wo/team/ 
>>>> <http://www.dh.uni-leipzig.de/wo/team/>
>>>> Web site 2: https://sites.google.com/site/giuseppegacelano/ 
>>>> <https://sites.google.com/site/giuseppegacelano/>
>>>> 
>>>>> On May 11, 2018, at 1:50 AM, Sebastian Zimmer 
>>>>> <sebastian.zim...@uni-koeln.de <mailto:sebastian.zim...@uni-koeln.de>> 
>>>>> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I have this script where I use the lookup operator to perform a unary 
>>>>> lookup:
>>>>> 
>>>>> xquery version "3.1";
>>>>> declare namespace array = "http://www.w3.org/2005/xpath-functions/array"; 
>>>>> <http://www.w3.org/2005/xpath-functions/array>;
>>>>> 
>>>>> let $array := []
>>>>> 
>>>>> return (
>>>>>   empty($array!?*),   (: returns false :)
>>>>>   empty(
>>>>>     for $i in 1 to array:size($array)
>>>>>     return $array($i)
>>>>>   )                  (: returns true  :)
>>>>> )
>>>>> I'm curious that the first expression returns false even though it should 
>>>>> be equivalent to the second expression, if I read the XQuery spec [1] 
>>>>> right:
>>>>> 
>>>>> If the context item is an array:
>>>>> If the KeySpecifier 
>>>>> <https://www.w3.org/TR/2017/REC-xquery-31-20170321/#doc-xquery31-KeySpecifier>
>>>>>  is a wildcard ("*"), the UnaryLookup 
>>>>> <https://www.w3.org/TR/2017/REC-xquery-31-20170321/#doc-xquery31-UnaryLookup>
>>>>>  operator is equivalent to the following expression:
>>>>> for $k in 1 to array:size(.)
>>>>> return .($k)
>>>>> But maybe I'm missing something. I'd be glad if you could help.
>>>>> Best regards,
>>>>> Sebastian Zimmer
>>>>> [1] https://www.w3.org/TR/2017/REC-xquery-31-20170321/#id-unary-lookup 
>>>>> <https://www.w3.org/TR/2017/REC-xquery-31-20170321/#id-unary-lookup>
>>>>> -- 
>>>>> Sebastian Zimmer
>>>>> sebastian.zim...@uni-koeln.de <mailto:sebastian.zim...@uni-koeln.de>
>>>>> <cceh-logo-cyan.png> <http://cceh.uni-koeln.de/>
>>>>> Cologne Center for eHumanities <http://cceh.uni-koeln.de/>
>>>>> DH Center at the University of Cologne
>>>>> <twitter_logo.png> <https://twitter.com/CCeHum>@CCeHum 
>>>>> <https://twitter.com/CCeHum>
>>> 
>>> -- 
>>> Sebastian Zimmer
>>> sebastian.zim...@uni-koeln.de <mailto:sebastian.zim...@uni-koeln.de>
>>> <cceh-logo-cyan.png> <http://cceh.uni-koeln.de/>
>>> Cologne Center for eHumanities <http://cceh.uni-koeln.de/>
>>> DH Center at the University of Cologne
>>> <twitter_logo.png> <https://twitter.com/CCeHum>@CCeHum 
>>> <https://twitter.com/CCeHum>
>> -- 
>> Sebastian Zimmer
>> sebastian.zim...@uni-koeln.de <mailto:sebastian.zim...@uni-koeln.de>
>> <cceh-logo-cyan.png> <http://cceh.uni-koeln.de/>
>> Cologne Center for eHumanities <http://cceh.uni-koeln.de/>
>> DH Center at the University of Cologne
>> <twitter_logo.png> <https://twitter.com/CCeHum>@CCeHum 
>> <https://twitter.com/CCeHum>
> -- 
> Sebastian Zimmer
> sebastian.zim...@uni-koeln.de <mailto:sebastian.zim...@uni-koeln.de>
> <cceh-logo-cyan.png> <http://cceh.uni-koeln.de/>
> Cologne Center for eHumanities <http://cceh.uni-koeln.de/>
> DH Center at the University of Cologne
> <twitter_logo.png> <https://twitter.com/CCeHum>@CCeHum 
> <https://twitter.com/CCeHum>

Reply via email to