Defining binary indexing operators
Assume we have a function like: foo <- function(x, y) how is it possible to define a binary indexing operator, denoted by $,
so
that x$y functions the same as foo(x, y)
Here is an example. Note that $ does not evaluate y so you have
to do it yourself:
x <- structure(3, class = "myclass")
y <- 5
foo <- function(x,y) x+y
"$.myclass" <- function(x, i) { i <- eval.parent(parse(text=i)); foo(x, i)
}
x$y # structure(8, class = "myclass")
what about this approach:
foo <- function(x, y) x+y
assign("$", foo)
would this overwrite $ and make R to forget its definitions in the global
environment?