module Daitai::Cond

Public Instance Methods

cond() click to toggle source
# File lib/daitai/functions/cond.rb, line 5
def cond
  ->(*pairs) { evaluate_cond(pairs) }
end

Private Instance Methods

evaluate_cond(pairs) click to toggle source
# File lib/daitai/functions/cond.rb, line 11
def evaluate_cond(pairs)
  lambda do |*arguments|
    result = nil

    pairs.each do |(predicate, transformer)|
      break result = transformer.(*arguments) if predicate.(*arguments)
    end

    result
  end
end