class Proc
Attributes
__is_lambda__[RW]
Public Instance Methods
<<(g)
click to toggle source
# File lib/backports/2.6.0/proc/compose.rb, line 3 def <<(g) if lambda? lambda { |*args, &blk| call(g.call(*args, &blk)) } else proc { |*args, &blk| call(g.call(*args, &blk)) } end end
>>(g)
click to toggle source
# File lib/backports/2.6.0/proc/compose.rb, line 11 def >>(g) if lambda? lambda { |*args, &blk| g.call(call(*args, &blk)) } else proc { |*args, &blk| g.call(call(*args, &blk)) } end end
curry(argc = nil)
click to toggle source
# File lib/backports/1.9.1/proc/curry.rb, line 5 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
lambda?()
click to toggle source
Standard in Ruby 1.9. See official documentation
# File lib/backports/1.9.1/proc/lambda.rb, line 6 def lambda? !!__is_lambda__ end