【问题标题】:Currying functions in RR中的柯里化函数
【发布时间】:2011-03-18 15:39:54
【问题描述】:

是否可以在R 中使用currying

一种可能性是拥有特殊的paste 函数(它可以被认为是here 的后续),例如(代码不正确):

'%+%' <- (sep)function(x,y) paste(x,y,sep=sep)
"a"%+%("")"b"%+%("_")"c" #gives "ab_c"

R 中的可能实现是什么?

PS:paste只是一个例子,我很好奇R的可能性...

【问题讨论】:

  • stackoverflow.com/questions/2228544/… R 中的高级函数 - 有官方的 compose 运算符或 curry 函数吗?
  • proto 包可以在 proto 对象的上下文中进行柯里化。例如,如果p 是一个原型对象,那么p$ls 就是ls,其中p 插入到第一个槽中,p$ls() 运行它。事实上p$ls()ls(p) 相同,只是它在p 中查找ls,如果没有找到则查找p 的祖先。

标签: r currying


【解决方案1】:

R 中函数式编程的标准位置现在是 functional 库,这个库替代了 here 讨论的 ROxigen 库:

library(functional)
newfunc <- Curry(oldfunc,x=5)

【讨论】:

  • 这里提到的Curry函数不是currying。它正在做部分应用。按照这个对功能库的回答,所以我认为值得提出警告;)。
【解决方案2】:

可以在R中进行curry,在ROxygen包中有定义。见讨论here

【讨论】:

    猜你喜欢
    • 2016-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-07
    • 2012-10-06
    • 1970-01-01
    相关资源
    最近更新 更多