- From: <bugzilla@jessica.w3.org>
- Date: Fri, 10 Jun 2016 14:37:39 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29080
Josh Spiegel <josh.spiegel@oracle.com> changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |josh.spiegel@oracle.com
--- Comment #5 from Josh Spiegel <josh.spiegel@oracle.com> ---
I think this function would lead to surprising results in cases where there is
not implicit flattening/atomization.  For example:
  let $arr := [1, 2, (), 4]
  return
    array {
      for $i in array:members($arr)  
      where not(empty($i))
      return 
        $i
    }
I might expect this to filter empty values from the array.  But actually it
would evaluate to [[1],[2],[()],[4]]
You are right that we have made changes recently to the functions and
operators.  We added array:put and modified the signature of array:remove and
map:remove.  In these cases, the modifications were low-risk and
straightforward changes that addressed usability problems.  While I have some
sympathy for the problem you are trying to solve, I am not convinced that this
is the right way to solve the problem. And, as you point out, users can
effectively iterate array members using 1 to array:size().
  let $arr := [1, 2, (), 4]
  return
    array {
      for $i in 1 to array:size($arr)  
      where not(empty($arr($i)))
      return 
        $i
    }
==>
   [1, 2, 4]
-- 
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Friday, 10 June 2016 14:37:41 UTC