From: greg Date: 2007-02-16T09:49:48+09:00 Subject: functional.rb A look through RAA and rubyforge doesn't show any functional programming libraries, are there any that I haven't noticed? Any one interested in starting functional.rb? Here are some functional helpers I have used. class Object def tap yield self return self end end require 'enumerator' module Enumerable def map_msg(meth, *args) if block_given? map{|e| yield( e.send(meth, *args) )} else map{|e| e.send(meth, *args)} end end def thread_map map do |e| Thread.new(e) {|thr_e| yield thr_e} end.map_msg(:value) end def thread_map_msg( meth, *args ) if block_given? map { |e| Thread.new(e) do |thr_e| yield thr_e.send(meth, *args) end }.map_msg(:value) else map { |e| Thread.new(e) do |thr_e| thr_e.send( meth, *args ) end }.map_msg(:value) end end end