bartolin_    m: say (* < 7 and * > 5)(6)
camelia      rakudo-moar ad062f: OUTPUT«True␤»
bartolin_    is that supposed to be the same as 'say (6 < 7 and 6 > 5)'?
             m: say (6 < 7 and 6 > 5)
camelia      rakudo-moar ad062f: OUTPUT«True␤»
bartolin_    m: say (* < 7 and * > 5)(7)
camelia      rakudo-moar ad062f: OUTPUT«True␤»
FROGGS       m: say (* < 7 and 7 > 5)(7)
camelia      rakudo-moar ab73b0: OUTPUT«Cannot find method 'postcircumfix:<( 
)>'␤  in block <unit> at /tmp/TTAXdxnzeL:1␤␤»
FROGGS       ?
             ahh
             the 'and' is not part of the code that is invoked via (7)
             say (* < 7 and * > 5)(7) turns into m: say (WhateverCode and * > 
5)(7), so the 7 is passed to the code after the 'and'
bartolin_    ahh, that explains it.
             it's from RT #116208
bartolin_    ... which doesn't look quite right (closable) to me
FROGGS       aye

AFAIU whatever-priming still does not work correctly with short-circuiting 
operators. Shouldn't the example code only run with 2 arguments -- like the 
following?

$ perl6 -e 'say ((* + 4) / (* - 4))(6)'
Too few positionals passed; expected 2 arguments but got 1
  in block <unit> at -e:1

$ perl6 -e 'say ((* + 4) / (* - 4))(6,6)'
5

Reply via email to