On Fri, Feb 19, 2010 at 12:39 PM, Peter Dalgaard <p.dalga...@biostat.ku.dk> wrote: > blue sky wrote: >> >> I made the following example to see what are the difference between >> expression and quote. But I don't see any difference when they are >> used with eval()? Could somebody let me know what the difference is >> between expression and quote? > > Expressions are vectors of unevaluated expressions, so one difference is > that expressions can have more than one element. > > Another difference is more subtle: objects of mode "expression" are better > at retaining their identity as an unevaluated expression > >> eval(substitute(2+x,list(x=expression(pi)))) > Error in 2 + expression(pi) : non-numeric argument to binary operator >> eval(substitute(2+x,list(x=quote(pi)))) > [1] 5.141593 > > The really convincing application of this escapes me for the moment, but the > gist of it is that there are cases where a quoted expression may blend in a > bit too seemlessly when using computing on the language. > > Also, expression objects are more easy to recognize programmeatically, > quote() may result in objects of mode "call", "name", or one of the base > classes.
I want to see how expression(something) and quote(something) are represented in R internally. But it seems that str() doesn't go to that low level. Is there a way to show the internal representation? >> expr=expression(2*3) >> quo=quote(2*3) >> >> eval(expr) >> str(expr) >> class(expr) >> typeof(expr) >> mode(expr) >> attributes(expr) >> >> eval(quo) >> str(quo) >> class(quo) >> typeof(quo) >> mode(quo) >> attributes(quo) >> >> ______________________________________________ >> R-help@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-help >> PLEASE do read the posting guide >> http://www.R-project.org/posting-guide.html >> and provide commented, minimal, self-contained, reproducible code. > > > -- > O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B > c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K > (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 > ~~~~~~~~~~ - (p.dalga...@biostat.ku.dk) FAX: (+45) 35327907 > ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.