Class: Functor

Class | Functor
In: | lib/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

### Methods

method_missing new to_proc

### Public Class methods

new(&function)

[Source]

    # File lib/core/facets/functor.rb, line 63
      def initialize(&function)
        @function = function
      end

### Public Instance methods

method_missing(op, *args, &blk)

Any action against the functor is processesd by the function.

[Source]

    # File lib/core/facets/functor.rb, line 72
      def method_missing(op, *args, &blk)
        @function.call(op, *args, &blk)
      end

to_proc()

[Source]

    # File lib/core/facets/functor.rb, line 67
      def to_proc
        @function
      end

[Validate]