я наткнулся на этот кусок кода разбора строки, как 5 * 5 + 5анализатор ^^^ Scala следуют функции
def add_expr: Parser[Expr] =
mult_expr * (
"+" ^^^ { (a: Expr, b: Expr) => Plus(a, b) } |
"-" ^^^ { (a: Expr, b: Expr) => Minus(a, b) })
Согласно документу, ^^^ говорит «, если левый операнд разбирает успешно, проигнорируйте результат и используйте значение справа ". Тогда почему этот кусок кода работает? Значение справа от ^^^ является функцией, а не значением Expr.