在 R 中,我注意到function
运算符的解析树似乎是多余的,因为它的第四个元素似乎总是由前三个元素组成。
例如,
> as.list(substitute(function(x = 1){x^2}))
[[1]]
`function`
[[2]]
[[2]]$x
[1] 1
[[3]]
{
x^2
}
[[4]]
function(x = 1){x^2}
我注意到的一件事是第四个元素确实存储了输入函数的格式。
> as.list(substitute(function(x = 1){
+ x^2})[[4]]
function(x = 1){
x^2}
解析树中第四个元素的目的是什么?我唯一能看到它被使用的是如果你想逐字打印一个函数,你已经可以通过打印函数来做到这一点,例如
> f = function(x = 1){
+ x^2}
> f
function(x = 1){
x^2}