Sha256: c65285b83eeda19d815415efb886b29d60b074e1eaf7ead503e35b4037d81dd6
Contents?: true
Size: 644 Bytes
Versions: 73
Compression:
Stored size: 644 Bytes
Contents
unless Proc.method_defined? :curry require 'backports/1.9.1/proc/lambda' class Proc def curry(argc = nil) min_argc = arity < 0 ? -arity - 1 : arity argc ||= min_argc if lambda? and arity < 0 ? argc < min_argc : argc != arity raise ArgumentError, "wrong number of arguments (#{argc} for #{min_argc})" end creator = lambda? ? :lambda : :proc block = send(creator) do |*args| if args.size >= argc call(*args) else send(creator) do |*more_args| args += more_args block.call(*args) end end end end end end
Version data entries
73 entries across 73 versions & 5 rubygems