It's the same with && and ||:

    ➜  &infix:<&&>(1, -> {say 2});  # 2
    ➜  say 1 && -> {say 2};         # ->  { #`(Block|169403552312) ... }

    ➜  &infix:<||>(0, -> {say 2});  # 2
    ➜  say 0 || -> {say 2};         # ->  { #`(Block|786414142008) ... }

And also with the loose-precedence versions `and`, `or`, `xor`.

And also with `xx`:

    ➜  &infix:<xx>(-> {say 2}, 2)
    2
    2

    ➜  say -> {say 2} xx 2
    (->  { #`(Block|315591575136) ... } ->  { #`(Block|315591575208) ... })

I.e., it's apparently a general rule for "thunky" operators.

Whether it's intentional, I don't know.

The design docs don't mention it: 
https://design.perl6.org/S03#Tight_and_precedence

Reply via email to