class Conflisp::Language
A collection of functions that can evaluate JSON encoded s-expressions
Attributes
registry[R]
Public Class Methods
define(&block)
click to toggle source
# File lib/conflisp/language.rb, line 11 def self.define(&block) method_registry = DSL.define(&block) new(registry: method_registry) end
new(registry:)
click to toggle source
# File lib/conflisp/language.rb, line 16 def initialize(registry:) @registry = registry end
Public Instance Methods
evaluate(expression, globals: {})
click to toggle source
# File lib/conflisp/language.rb, line 20 def evaluate(expression, globals: {}) evaluator = Evaluator.new(registry: registry, globals: globals) evaluator.resolve(expression) end
extend(&block)
click to toggle source
# File lib/conflisp/language.rb, line 25 def extend(&block) new_registry = DSL.define(&block) self.class.new(registry: registry.merge(new_registry)) end