我想问一下R语言中关于表达式解析的问题。让我举一个例子:
fun_text <- c("
0 -> var
f1 <- function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
}
(function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
})->f2
f3 = function(x)
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
}
")
fun_tree <- parse(text=fun_text)
fun_tree
fun_tree[[1]]
fun_tree[[2]]
fun_tree[[3]]
fun_tree[[4]]
完成后,我们得到以下结果:
expression(0 -> var, f1 <- function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
}, (function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
})->f2, f3 = function(x)
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
})
和
var <- 0
和
f1 <- function() {
sum_var <- 0
sum_var2 = 0
sum_var3 <- 0
}
和
f2 <- (function() {
sum_var <- 0
sum_var2 = 0
sum_var3 <- 0
})
和
f3 = function(x) {
sum_var <- 0
sum_var2 = 0
sum_var3 <- 0
}
如您所见,所有的“->”赋值运算符都被更改为“<-”,但第一个例子(仅“fun_tree”)没有被更改。我的问题是:为什么会这样?我能确信在语法树中总是得到“<-”运算符,因此我不必在实现“->”情况时费心吗?
length(fun_tree)
确保那里没有更多的“隐藏”吗? - Carl Witthoft