replace expressions with polynomials, add interpreter command class, rewrite parser

This commit is contained in:
2026-04-13 13:23:12 +03:00
parent afb81b475a
commit a420ba3ce2
5 changed files with 343 additions and 532 deletions

View File

@@ -171,7 +171,9 @@ module RubyAlgebra
end
def *(other)
return Term.new if @coeff.zero? || other.coeff.zero?
return Term.new if zero? || other.zero?
return Term.new(coeff * other, variables) unless other.is_a? Term
new_variables = @variables.clone
other.variables.each do |symbol, power|
@@ -205,11 +207,19 @@ module RubyAlgebra
unless @variables.empty?
first = true
@variables.each do |var, power|
result += if first
"#{var}^#{power}"
else
" * #{var}^#{power}"
end
if first
unless power == 1
result += "#{var}^#{power}"
else
result += "#{var}"
end
else
unless power == 1
result += " * #{var}^#{power}"
else
result += " * #{var}"
end
end
first = false
end
end