Last Modified
2013-07-12 01:46:03 +0000
Requires

Description

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