- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
我正在为 lambdas 创建快捷方式,因为 function (…) …
的重复使用使我的代码相当困惑。作为补救措施,我正在尝试受其他语言(例如 Haskell)启发的替代语法,只要在 R 中是可能的。简化后,我的代码如下所示:
f <- function (...) {
args <- match.call(expand.dots = FALSE)$...
last <- length(args)
params <- c(args[-last], names(args)[[last]])
function (...)
eval(args[[length(args)]],
envir = setNames(list(...), params),
enclos = parent.frame())
}
f(x = x * 2)(5) # => 10
f(x, y = x + y)(1, 2) # => 3
Map(f(x = x * 2), 1 : 10)
f(x = Map(f(y = x + y), 1:2))(10)
eval(expr, envir, enclos)
: 对象
x
未找到”。使用
function
的概念等效代码而不是
f
作品。此外,其他嵌套方案也适用:
f(x = f(y = x + y)(2))(3) # => 5
f
的父环境 map 内部:是顶层环境而不是外部
f
的。但是我不知道如何解决这个问题,而且上面的第二种情况也让我感到困惑。相关问题 (
such as this one ) 提出了不适用于我的情况的解决方法。
(1 : 10) * 2
.真正的应用是更复杂的对象/操作。
最佳答案
答案是附上parent.frame()
到输出函数的环境:
f <- function (...) {
args <- match.call(expand.dots = FALSE)$...
last <- length(args)
params <- c(args[-last], names(args)[[last]])
e <- parent.frame()
function (...)
eval(args[[length(args)]],
envir = setNames(list(...), params),
enclos = e)
}
关于r - 嵌套的 `eval` 的环境和外壳是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20597055/
快速简单的问题: 如何制作多种颜色的开关/外壳。 我能做的是: if(color == Color.Red) color = Color.Green; else { if(color
我有这个 switch/case 结构: public void onClick(View arg0) { // TODO Auto-generated method stub swi
在我的程序中,我想使用不同的进程访问多个 linux shell。 目前我正在使用子进程我目前没有 linux 机器来测试它所以你能告诉我这是否有效。 子进程是否在一个终端上工作?如果是这样,还有其他
我在后面的代码中有三次与此示例非常相似的代码。每次开关关闭发送给它的选项。每个time case里面的代码除了一个参数是完全一样的基于案例。使用 switch/case 和方法是最好的方法去做这个?我
阅读 LTP shell code它使用奇怪的 for 循环语法: for arg; do TCID="${TCID}_$arg" done 它如何接受参数?我希望它循环遍历 $arg,用 $
这不是最有见地的问题,但我真的希望能够按 Control-L 并让 shell iex 清除屏幕。知道如何做到这一点,或者是否有另一个带有此内置功能的 Elixir shell ? 最佳答案 clea
我已经切换到 Enthought 的 Canopy 1.0.0,但我想念独立的 QT shell 和 QT notebook。我不想使用 IDE 中的内置 shell。我在哪里可以找到 QT shel
我在PyCharm中创建了新的flask项目,但看不到如何在集成的PyCharm python控制台窗口中运行flask shell。 启动控制台时未定义名称应用程序: 我仍然可以在集成的PyChar
尝试创建Prism shell 时,出现以下异常: An exception of type 'Microsoft.Practices.ServiceLocation.ActivationExcept
这个问题在这里已经有了答案: How to use the switch statement in R functions? (4 个回答) 4年前关闭。 我有一系列嵌套 if..else我想用 ca
cat < file.txt < file2.txt 我正在编写一个简单的 shell,我正在思考上面的表达式的含义。我很清楚这是什么意思:cat < file.txt,但双“<”让我困惑。 实现重定
我正在考虑使用 CompositeWPF ( http://www.codeplex.com/CompositeWPF ) - 又名 Prism,来构建我正在处理的应用程序。 该应用程序不是传统的 L
我有一个没有图形用户界面的操作类。该类主要是做数据管理。该类是从我的主 GUI 中的方法调用的。我遇到的问题是在出现故障时向用户显示消息。我正在使用 MessageDialog,但它在运行时一直失败。
我在教程中看到了两种在 BASH shell 中对 if 语句进行语法处理的方法: 除非我在变量周围加上引号并添加额外的 [ 和 ],否则这个不会工作: if [[ "$step" -eq 0 ]]
我的脚本接受键值对作为命令行参数。我测试给定数量的参数是否偶数。如果偶数,我想遍历数组,将 args[n] & args[n+1] 视为一对 (n = 0 to $# - 1) 并执行另一个将这两个作
全部!我的 CKEditor 有问题!我需要用 div 将 ul、ol 列表括起来。因此,当我按下面板上的列表按钮时,我会得到这样的结果: 最佳答
我在更改我的 Android 外壳中的所有者时遇到了一些问题。我正在尝试更改文件的所有者和组以匹配目录中的另一个文件。当我 ls -l 其他文件拥有 u0_a49 的所有者时,我尝试 su chown
平台:RHEL7 情况: JMeter 报告文件每 5 分钟通过 crontab 脚本附加新结果 另一个 awk 脚本查找响应时间大于 500 毫秒并发送电子邮件警报 问题陈述: 要求是只扫描报告文件
对于 Python,我使用 PyCrust,这是一个很好的图形外壳,感觉就像一个很好的 Java IDE(具有自动完成、内联文档并可以保存历史记录)。 Ruby 有类似的东西吗? 最佳答案 如果不需要
以下出现在我的 WinProc 中: if(message == WM_CREATE) { //Do WM_CREATE stuff } else { switch(message)
我是一名优秀的程序员,十分优秀!