class Functor
By definition a Functor is simply a first class method, but these are common in the form of Method and Proc. So for Ruby a Functor is a more specialized as a Higher-order function or Metafunction. Essentally, a Functor can vary its behavior accorrding to the operation applied to it.
f = Functor.new { |op, x| x.send(op, x) } f + 1 #=> 2 f + 2 #=> 4 f + 3 #=> 6 f * 1 #=> 1 f * 2 #=> 4 f * 3 #=> 9
Public Class Methods
new(&function)
click to toggle source
# File lib/core/facets/functor.rb, line 63 def initialize(&function) @function = function end
Public Instance Methods
method_missing(op, *args, &blk)
click to toggle source
Any action against the functor is processesd by the function.
# File lib/core/facets/functor.rb, line 72 def method_missing(op, *args, &blk) @function.call(op, *args, &blk) end
to_proc()
click to toggle source
# File lib/core/facets/functor.rb, line 67 def to_proc @function end