Это довольно простой в 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, похоже, не в состоянии вернуть varargs fn.
Конечно, мы можем
class Proc
def partial(*left)
Proc.new do |*right|
self.call *left, *right
end
end
end
Но мне было интересно, если бы это было в стандартной библиотеке.
Пожалуйста, сформулируйте вопрос, чтобы его могли понять знакомые с Ruby, но не Closure. Под «varargs fn» вы имеете в виду curried proc с переменным числом аргументов? Для вашего примера, что вы хотите, чтобы proc возвращался при вызове? –
С неопределенным номером, да. Varargs - это нейтральный язык. –