class Ruspea::Runtime::Fn

Attributes

arities[R]

Public Class Methods

new(*lambdas) click to toggle source
# File lib/ruspea/runtime/fn.rb, line 3
def initialize(*lambdas)
  @arities = {}

  lambdas.each { |lm| add lm }
end

Public Instance Methods

add(lm) click to toggle source
# File lib/ruspea/runtime/fn.rb, line 9
def add(lm)
  arities[lm.arity] = lm
end
call(*args, context: nil, evaler: nil) click to toggle source
# File lib/ruspea/runtime/fn.rb, line 13
def call(*args, context: nil, evaler: nil)
  arities
    .fetch(args.length)
    .call(*args, context: context, evaler: evaler)
end