这在clojure中相当简单-
(def a (partial println "Hello:"))
(a "Bob")
(a "Bob" "Ganesh")
但这在鲁比看来很难。
:puts.to_proc.curry(3)[Kernel, "Hello:"]("Bob")
:puts.to_proc.curry(4)[Kernel, "Hello:"]("Bob", "Ganesh")
proc curry似乎无法返回varargs fn。
我们当然可以
class Proc
def partial(*left)
Proc.new do |*right|
self.call *left, *right
end
end
end
但我想知道这是不是在标准图书馆。
最佳答案
请改为:
:puts.to_proc.curry(3)[Kernel, "Hello:"].("Bob")
在ruby中,bare paren只用于调用方法。对于调用过程,您需要执行
.call()
或[]
或.()
操作。关于ruby - curry varargs proc并在ruby中获取另一个varargs proc,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34571954/