Skip to content
Prev 47382 / 63424 Next

class() on substitute(...) output?

Does it make sense to talk about the class of the output of
substitute(...)?  I'm puzzled by the following outputs:

ee <- list(
  A = substitute( a <- 1 ),
  B = substitute({ a <- 1 }),
  C = substitute(( a <- 1 )),
  D = substitute( a == 1 )
)
typeof     mode   class
A "language" "call" "<-"
B "language" "call" "{"
C "language" "("    "("
D "language" "call" "call"

That the mode in C is "(", is motivated in help("mode"): "that some
calls have mode "(" which is S compatible."  However, what's the
explanation for the different classes?  Is that intended or just
"garbage" output?

Thanks,

Henrik