Rev 9145 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
#### eval / parse / deparse / substitute etc##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>##- Subject: Re: source() / eval() bug ??? (PR#96)##- Date: 20 Jan 1999 14:56:24 +0100e1 <- parse(text='c(F=(f <- .3), "Tail area" = 2 * if(f < 1) 30 else 90)')[[1]]e1str(eval(e1))mode(e1)( e2 <- quote(c(a=1,b=2)) )names(e2)[2] <- "a b c"e2parse(text=deparse(e2))##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>##- Date: 22 Jan 1999 11:47( e3 <- quote(c(F=1,"tail area"=pf(1,1,1))) )eval(e3)names(e3)names(e3)[2] <- "Variance ratio"e3eval(e3)##- From: Peter Dalgaard BSA <p.dalgaard@biostat.ku.dk>##- Date: 2 Sep 1999## The first failed in 0.65.0 :attach(list(x=1))evalq(dim(x) <- 1,pos.to.env(2))dput(get("x", env=pos.to.env(2)))e <- local({x <- 1;environment()})evalq(dim(x) <- 1,e)dput(get("x",env=e))### Substitute, Eval, Parse, etc## PR#3 : "..." matchingA <- function(x, y, ...) {B <- function(a, b, ...) { match.call() }B(x+y, ...)}(aa <- A(1,2,3))all.equal(as.list(aa),list(as.name("B"), a = expression(x+y)[[1]], ..1 = 3))(a2 <- A(1,2, named = 3)) #A(1,2, named = 3)all.equal(as.list(a2),list(as.name("B"), a = expression(x+y)[[1]], named = 3))CC <- function(...) match.call()DD <- function(...) CC(...)a3 <- DD(1,2,3)all.equal(as.list(a3),list(as.name("CC"), ..1 = 1, ..2 = 2, ..3 = 3))## Bug PR#24f <- function(x,...) substitute(list(x,...))deparse(f(a, b)) == "list(a, b)" &&deparse(f(b, a)) == "list(b, a)" &&deparse(f(x, y)) == "list(x, y)" &&deparse(f(y, x)) == "list(y, x)"## Parser:1 <22 <=34 >=33 >22 ==2## bug till ...1 !=3