问题标签 [lexical-scope]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
variables - 书签+中的书签设置问题(emacs 24.5)
Emacs 在书签集上提出“funcall: Symbol 的值作为变量是 void:choices”。
禁用书签+后,书签设置开始正常工作。
有谁知道如何解决这个问题?
javascript - 外部函数返回一个内部函数,可以访问外部函数的值
我需要创建一个将传递给我的数据库服务器的函数。返回的函数将单个项目作为参数并将该项目与需求列表进行比较。
为此,我需要一个函数生成函数,该函数将数组作为参数并返回内置该数组的内部函数。
这是一个例子:
一个使用这个的例子:
如何将需求列表构建到内部函数中?
r - 并行化每个修改函数的父环境的独立函数调用
我想找到一种方法来并行化重复的独立函数调用,其中每个调用都会修改函数的父环境。函数的每次执行都是独立的,但是,由于各种原因,我无法考虑任何其他不依赖于修改函数父环境的实现。请参见下面的简化示例。有没有办法将父环境的副本传递给每个节点?我在linux系统上运行它。
elisp - Emacs lisp:将词法范围传递给函数?
Python 3 有这个功能locals()
ans函数globals()
允许将当前作用域的命名值至少出于只读目的传递给函数。
在 emacs lisp 中,我想编写一个用于字符串插值的函数。它需要访问词汇变量。由于我想避免在宏更改时重新编译其他文件,因此显而易见的解决方案——使用宏——是不可行的。
是否有可能在 emacs lisp 中执行此操作?
我已经尝试过该功能lisp--local-variables
,但它不适lexical-binding
用于t
。
Elisp 文档中的一些相关引用
(在内部,词法环境是一个符号值对的列表,列表中的最后一个元素是符号 't' 而不是一个 cons 单元格。这样的 alist 可以作为第二个参数传递给 'eval' 函数, 以便指定评估表单的词法环境。*注意 Eval::。然而,大多数 Emacs Lisp 程序不应该以这种方式直接与词法环境交互;只有专门的程序,如调试器。)
目前,一个 Emacs Lisp 闭包对象由一个列表表示,符号 `closure' 作为第一个元素,一个表示词法环境的列表作为第二个元素,参数列表和主体形式作为其余元素:
然而,闭包的内部结构被“暴露”给 Lisp 世界的其他部分这一事实被认为是内部实现细节。因此,我们建议不要直接检查或更改闭包对象的结构。
perl - 从 Perl 中的子例程返回别名
是否可以从 Perl 中的子例程返回别名?
我有一个简单的例子:
这本质上是我想要的功能,但是我想找到一种方法来制作$test
和别名,$value
这样我就可以在不取消引用的情况下访问数据。这可能吗?
这是我想要的语法示例:
前(伪代码):
我一直在阅读有关别名的内容,并且所有内容都指向“typeglobs”……但看起来使用 typeglobs 需要使用全局变量,我真的很想避免这种情况。
此外,我想要一个不需要从 CPAN 安装任何其他模块的解决方案,因为我需要让它们得到安全部门的批准并让他们安装它......这里任何想要使用我的脚本的人也一样。
python - 是否有适用于 Python 的范围分析器?
给定一个 python 文件,我想找出文件中标识符的所有范围和声明。
例如,给定这个文件:
我希望输出为:
- 在第 7 行,
my_func
指的是my_func
在此文件的第 4 行中定义的 - 在第 8 行,
a
指的是模块 a。function_in_a
指模块 a 中定义的函数 - 在第 9 行,
xyz
指的是模块 b 中定义的函数
有没有为我做这个的图书馆?基本上我试图在IDE功能/代码自动完成/理解变量范围的上下文中使用。基本上,我有兴趣了解标识符(变量、函数等)定义的位置,就像 PyCharm 之类的 IDE 如何确定它一样。
r - 将模型参数稳健地传递给 R 的 predict() 函数
我正在尝试使用 R 来拟合线性模型并进行预测。我的模型包括一些不在数据框中的常量边参数。这是我正在做的简化版本:
不幸的是,模型对象现在遇到了一个危险的范围问题:lm()
不保存b
为的一部分mdl
,所以当predict()
被调用时,它必须回到b
定义的环境中。因此,如果后续代码改变 的值b
,预测值也会改变:
如何强制predict()
使用原始b
值而不是更改后的值?或者,是否有某种方法可以控制predict()
变量的查找位置,以便我可以确保它获得所需的值?实际上,我不能将b
其作为newdata
数据框的一部分包含在内,因为在我的应用程序中,b
它是一个参数向量,其大小与新观察的数据框的大小不同。
请注意,相对于我的实际用例,我已经大大简化了这一点,所以我需要一个强大的通用解决方案,而不仅仅是临时黑客。
perl - 在 Perl 中本地更改类的属性
我在我的一个 Perl 脚本中遇到了一个奇怪的问题。我有一个 Perl 对象。在某个范围内,我希望更改对象属性之一,但我希望该属性在离开范围后恢复为旧值。
例子:
有没有办法实现这样的目标?