Можно ли определить новый оператор в Raku и контролировать его приоритет?

Рассмотрим этот новый оператор:

sub infix:<*++>(\num1, \num2) {
    num1 * num2 + 1
}

say (2 + 1 *++ 3);

Этот код печатает:

10

Однако можно ли контролировать приоритет? Вот так он себя ведет:

say (2 + (1 *++ 3))

без скобок


person Julio    schedule 13.10.2020    source источник


Ответы (1)


Это возможно с помощью is tighter

sub infix:<*++> (\num1, \num2) is tighter(&[+])  {
      num1 * num2 + 1
}
person wamba    schedule 13.10.2020
comment
Или is equiv, или is looser. Пожалуй, is equiv(&[*]) здесь наиболее подходит. - person mscha; 15.10.2020
comment
Да, я наконец-то использую эквивалент :). Спасибо! - person Julio; 15.10.2020