Я пытаюсь реализовать currying согласно примеру Little Schemer eq?
ниже. eq(test, testFor)
принимает условие теста и атом и возвращает функцию, основанную на переданной функции test
, которая принимает один аргумент, чтобы возвращать логическое значение.Пример маленького шаблона Curry в Ruby
Вот мой код:
def eq(test, s)
Proc.new { |x| test(s,x)}
end
eqToCarrot = eq(Proc.new{|x,y| x==y},"carrot")
if eqToCarrot.call("carrot")
puts "Equal!"
end
Условный условие не выполняется. Может кто-нибудь сказать мне, почему?
так как же функция возвращает процедурный, который возвращает процедурный ? –
Я не могу ответить сейчас, но если никто больше не вернется к вам, я отвечу через пару часов. –
@AmanGupta См. Обновленный ответ –