На самом деле синтаксический анализ DOES поддерживает произвольные функции в качестве LHS присваивания, но эти функции используются для чего-то, что может использоваться само по себе в левой части (например, имя переменной, но не строка или числовая буква), поэтому код:
`foo<-` <- function(x,y,value) set_foo(x,y,value)
set_foo <- function(x,y,value) UseMethod("set_foo")
set_foo.data.frame <- function(x,y,value) {print(x);print(y);print(value);x}
data(mtcars)
foo(mtcars,1)<-2
отлично работает, но
foo(0,1)<-2
приведет к ошибке даже при определении set_foo.default.