I have some code where the primary dispatching is on
other parameters so I'd like not to have to create a
set of functions for "matrix" and another duplicate
set for "array". But the class union technique isn't
working as implemented below and I don't have my Green
book with me. How do I fix my infinite recursion problem?
##--------------------------------------------------------
library(methods)
setGeneric("foo",
function(A, ...) {
cat("generic", match.call()[[1]], "\n")
standardGeneric("foo")
})
setMethod("foo",
signature(A = "vector"),
function(A, ...) {
callGeneric(matrix(A, nrow = 1), ...)
})
setClassUnion("matrixOrArray", c("matrix", "array"))
setMethod("foo",
signature(A = "matrixOrArray"),
function(A, ...) {
cat("A =", A, "\n")
})
## Test
foo(1:4)
foo(matrix(1:4, 1, 4))
foo(array(1:4, c(1, 4, 1)))
----------------------------------------------------------
SIGSIG -- signature too long (core dumped)
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html