Why is := allowed as an infix operator?
I have come across the popular data.table package and one thing in particular intrigued me. It has an in-place assignment operator := This is not defined in base R. In fact if you didn't load the data.table package, it would have raised an error if you had tried to used it (e.g., a := 2 ) with the message: Error: could not find function ":=" Also, why does := work? Why does R let you define := as infix operator while every other infix function has to be surrounded by %% , e.g. `:=` <- function(a, b) { paste(a,b) } "abc" := "def" Clearly it's not meant to be an alternative syntax to %function