Functor
Synopsis
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 bit 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
Author
- Thomas Sawyer
History
- 2006-11-04 trans Deprecated functor_function, renamed to to_proc.
- 2006-11-04 trans All methods are now private except __ and binding.
Todo
- Consider renaming Functor to… ?
Copying
Copyright (c) 2004 Thomas Sawyer
Ruby License
This module is free software. You may use, modify, and/or redistribute this software under the same terms as Ruby.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.