Warum ist: = als Infix-Operator erlaubt?

Ich bin auf das beliebte @ gestoßdata.table Paket und eine Sache hat mich besonders fasziniert. Es hat einen In-Place-Zuweisungsoperator

: =

Dies ist nicht in der Basis R definiert. Wenn Sie das @ nicht geladen habdata.table package, es hätte einen Fehler ausgelöst, wenn Sie versucht hätten, ihn zu verwenden (z. B.a := 2) mit der Nachricht:

Error: Funktion konnte nicht gefunden werden":="

Auch, warum macht:= Arbeit? Warum können Sie mit R @ definiere:= als Infixoperator, während jede andere Infixfunktion von @ umgeben sein mu%%, z.B

`:=` <- function(a, b) {
   paste(a,b)
}

"abc" := "def"

Es ist offensichtlich nicht als alternative Syntax zu @ gedach%function.name% zur Definition von Infix-Funktionen. Istdata.table Ausnutzung einiger Parsing-Macken von R? Ist es ein Hack? Wird es in Zukunft "gepatcht"?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage