Hello,

I wonder if this will make it through the spam filters given the
subject line.

I'm seeing the following when trying to call a dollar method inside of
a dollar method.


    setClass("Foo", representation(d="list"))
    [1] "Foo"

    f <- new("Foo", d=list(bob=1, alice=2))

## We can call dollar at this level and it works as expected

    `$`(f, "bo")
    [1] 1

    `$`(f, "al")
    [1] 2

## So set a method on Foo that does this

    setMethod("$", "Foo", function(x, name) `$`([EMAIL PROTECTED], name))
    [1] "$"

## But it doesn't work.  Why?

    f$bo
    NULL

    f$al
    NULL

## Here is a hackish workaround.

    setMethod("$", "Foo", function(x, name)
              eval(substitute([EMAIL PROTECTED], list(FOO=name))))
    [1] "$"

    f$bo
    [1] 1

    f$al
    [1] 2

Other suggestions for workarounds?  Is this a bug?

+ seth

-- 
Seth Falcon | Computational Biology | Fred Hutchinson Cancer Research Center
http://bioconductor.org

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to