# 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.