eval(parse()) 中的词法范围和嵌套函数

朗道

我遇到了drake 问题 35 的问题,并且我已经为这篇 SO 帖子复制了该错误的最小版本。简而言之,我想eval(parse())使用嵌套函数、非平凡闭包和自定义环境。如果eval(parse(text = "f(1:10)"), envir = e)以下返回2:11没有错误或警告,我将考虑解决问题

e = new.env(parent = globalenv())
e$f = Vectorize(function(x) g(x), "x")
e$g = function(x) x + 1
eval(parse(text = "f(1:10)"), envir = e)

(函数(x)中的错误:找不到函数“g”

environment(e$f) = environment(e$g) = e
eval(parse(text = "f(1:10)"), envir = e)

匹配错误(x,表,nomatch = 0L):找不到对象“vectorize.args”

编辑

在现实世界中,f并且g是用户定义的,所以我应该按原样保留这些函数的主体。

萨蒂什

使用attach附加的对象e环境和调用该函数f

e = new.env(parent = globalenv())
e$f = Vectorize(function(x) g(x), "x")
e$g = function(x) x + 1
attach(e)
search()
eval(parse(text='f(1:10)'))
# [1]  2  3  4  5  6  7  8  9 10 11
detach(e)
search()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

setTimeout 中的词法范围

来自分类Dev

javascript中的词法范围,可变生存期和Promise

来自分类Dev

Python:嵌套函数和变量范围

来自分类Dev

Node JS嵌套函数和变量范围

来自分类Dev

如何在 Javascript 中的非匿名/声明函数中实现词法范围

来自分类Dev

C ++中的嵌套函数声明的范围

来自分类Dev

Python嵌套函数中的变量范围

来自分类Dev

python中嵌套函数的变量范围

来自分类Dev

嵌套函数中“ this”关键字的范围?

来自分类Dev

Python嵌套函数中的变量范围

来自分类Dev

在嵌套函数中设置组件范围变量

来自分类Dev

什么时候确定函数内函数的词法范围?

来自分类Dev

嵌套函数声明的范围

来自分类Dev

嵌套R函数的范围

来自分类Dev

寻找为函数定义词法范围别名的简便方法

来自分类Dev

从深度嵌套的指令中调用父范围函数

来自分类Dev

在嵌套结构中限制构造函数范围

来自分类Dev

范围问题,嵌套函数中的 var 未定义

来自分类Dev

javascript 中的闭包和词法环境

来自分类Dev

在嵌套AND和OR函数中查询使用CASE

来自分类Dev

JavaScript /循环混淆中的动态范围与词法作用域

来自分类Dev

在 perl 中的连续 eval 语句之间共享词法范围

来自分类Dev

javascript中的嵌套对象范围和动态引用

来自分类Dev

嵌套对象/函数时的范围

来自分类Dev

范围隔离和嵌套指令

来自分类Dev

Scala中的“副作用词法关闭”与函数

来自分类Dev

如何使函数调用服从Python中的词法作用域?

来自分类Dev

箭头函数中的WebSocket回调未按词法设置“ this”

来自分类Dev

Excel - 嵌套 IF 和 AND 函数