Class: Keisan::Functions::Replace

Inherits:
Keisan::Function show all
Defined in:
lib/keisan/functions/replace.rb

Instance Attribute Summary

Attributes inherited from Keisan::Function

#arity, #name

Instance Method Summary collapse

Methods inherited from Keisan::Function

#differentiate

Constructor Details

#initializeReplace

Returns a new instance of Replace.



4
5
6
# File 'lib/keisan/functions/replace.rb', line 4

def initialize
  @name = "replace"
end

Instance Method Details

#evaluate(ast_function, context = nil) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/keisan/functions/replace.rb', line 13

def evaluate(ast_function, context = nil)
  context ||= Context.new
  expression, variable, replacement = expression_variable_replacement(ast_function)

  expression = expression.evaluate(context)
  replacement = replacement.evaluate(context)

  expression.replace(variable, replacement).evaluate(context)
end

#simplify(ast_function, context = nil) ⇒ Object



23
24
25
26
# File 'lib/keisan/functions/replace.rb', line 23

def simplify(ast_function, context = nil)
  context ||= Context.new
  evaluate(ast_function, context).simplify(context)
end

#value(ast_function, context = nil) ⇒ Object



8
9
10
11
# File 'lib/keisan/functions/replace.rb', line 8

def value(ast_function, context = nil)
  context ||= Context.new
  evaluate(ast_function, context).value(context)
end