gpt4 book ai didi

ruby - 在 ruby​​ 中柯里化(Currying)一个 varargs proc 并获得另一个 varargs proc

转载 作者:数据小太阳 更新时间:2023-10-29 08:11:37 26 4
gpt4 key购买 nike

这在 Clojure 中相当简单 -

(def a (partial println "Hello:"))
(a "Bob")
(a "Bob" "Ganesh")

但这在 Ruby 中似乎很难。

:puts.to_proc.curry(3)[Kernel, "Hello:"]("Bob")
:puts.to_proc.curry(4)[Kernel, "Hello:"]("Bob", "Ganesh")

Proc#curry 似乎无法返回可变参数 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​​ 中,裸括号仅用于调用方法。对于调用过程,您需要执行 .call()[].()

关于ruby - 在 ruby​​ 中柯里化(Currying)一个 varargs proc 并获得另一个 varargs proc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34571954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com