ich auf diesem Stück Code kam Reihe von Parsen wie 5 * 5 + 5scala Parser ^^^ gefolgt von einer Funktion
def add_expr: Parser[Expr] =
mult_expr * (
"+" ^^^ { (a: Expr, b: Expr) => Plus(a, b) } |
"-" ^^^ { (a: Expr, b: Expr) => Minus(a, b) })
Laut Dokument, ^^^ sagt „, wenn der linke Operand erfolgreich analysiert, Ignoriere das Ergebnis und verwende den Wert von rechts ". Warum funktioniert dieses Stück Code? Der Wert von rechts von ^^^ ist eine Funktion, kein Expr-Wert.