functor.rb

Path: lib/core/facets/functor.rb
Last Update: Sat Feb 23 07:11:38 +0000 2019

Functor is Ruby‘s implementation of a Higher-Order-Message. Essentally, a Functor can vary its behavior accorrding to the operation applied to it.

Example

  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

[Validate]