Nothing
source("incl/start.R")
bquote_compile <- future:::bquote_compile
bquote_apply <- future:::bquote_apply
message("*** bquote_compile() & bquote_apply() ...")
exprs <- list(
A = quote(.(a)),
B = quote(1 + .(a)),
C = quote(.(a) + 2),
D = quote({ .(a) }),
E = quote({ 1 + .(a) }),
F = quote(function(x = 42) { x + .(a) }),
G = quote({ 1 + .(a + 2) * c(1, 2, .(b)) }),
H = quote(.(a + 1)),
I = quote(.(a + 1) + .(a)),
J = quote(function(a=.(a)) NULL)
)
for (kk in seq_along(exprs)) {
name <- names(exprs)[kk]
message(sprintf("Expression #%d (%s) of %d:",
kk, sQuote(name), length(exprs)))
expr <- exprs[[kk]]
print(expr)
for (a in list(1, quote(A), quote(c()), NULL)) {
for (b in list(1, quote(B), quote(c()), NULL)) {
str(list(a = a, b = b))
truth <- tryCatch({
eval(as.call(list(quote(base::bquote), expr)))
}, error = identity)
if (inherits(truth, "error")) next
tmpl <- bquote_compile(expr, substitute = FALSE)
expr2 <- bquote_apply(tmpl)
print(expr2)
if (!isTRUE(all.equal(expr2, truth))) {
str(list(name = name, a = a, b = b, truth = truth, expr2 = expr2))
stopifnot(all.equal(expr2, truth))
}
}
}
}
message("*** bquote_compile() & bquote_apply() ... DONE")
source("incl/end.R")
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.