module Daitai::Map
Public Instance Methods
map()
click to toggle source
# File lib/daitai/functions/map.rb, line 5 def map lambda do |fn, functor| case functor when Proc then proc_map(fn, functor) when Hash then hash_map(fn, functor) else default_map(fn, functor) end end.curry end
Private Instance Methods
default_map(fn, functor)
click to toggle source
# File lib/daitai/functions/map.rb, line 25 def default_map(fn, functor) functor.map(&fn) end
hash_map(fn, functor)
click to toggle source
# File lib/daitai/functions/map.rb, line 21 def hash_map(fn, functor) Hash[functor.map { |key, value| [key, fn.(value)] }] end
proc_map(fn, functor)
click to toggle source
# File lib/daitai/functions/map.rb, line 17 def proc_map(fn, functor) ->(*args) { fn.(*functor.(*args)) } end