| Class | Functor |
| In: |
lib/facets/core/facets/functor.rb
|
| Parent: | Object |
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
| EXCEPTIONS | = | [:binding, :inspect, :object_id] |
| class | -> | __class__ |
# File lib/facets/core/facets/functor.rb, line 50 def initialize(&function) @function = function end