# New Ticket Created by  "Dave Whipp" 
# Please include the string:  [perl #71846]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=71846 >


By principle of least surprise, all three of these should result in
the same output:

<dpuu> rakudo: say (0,1).grep: {!($^x%2)}
<p6eval> rakudo db84bc: 0

<dpuu> rakudo: say (0,1).grep: !(*%2)
<p6eval> rakudo db84bc: #{empty-list}

<dpuu> rakudo: say (0,1).grep: 0==(*%2)
rakudo db84bc: 0



More specifically, I see that

<dpuu> rakudo: say (0==(*%2)).WHAT
<p6eval> rakudo db84bc: !whatever_closure
<dpuu> rakudo: say (!(*%2)).WHAT
<p6eval> rakudo db84bc: Bool()


Seems wrong that one of these curries, but not the other. Presumably
the prefix:<!> sees a a !whatever_closure as a true value (and so
returns false) whereas the infix:<==> sees a !whatever_closure and
curries.

Reply via email to