Method: Keisan::Functions::ProcFunction#evaluate
- Defined in:
- lib/keisan/functions/proc_function.rb
#evaluate(ast_function, context = nil) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/keisan/functions/proc_function.rb', line 25 def evaluate(ast_function, context = nil) validate_arguments!(ast_function.children.count) context ||= Context.new ast_function.instance_variable_set( :@children, ast_function.children.map {|child| child.evaluate(context).to_node} ) if ast_function.children.all? {|child| child.well_defined?(context)} value(ast_function, context).to_node.evaluate(context) else ast_function end end |