diff --git a/pymath/calculus/abstract_polynom.py b/pymath/calculus/abstract_polynom.py index 1248307..6751692 100644 --- a/pymath/calculus/abstract_polynom.py +++ b/pymath/calculus/abstract_polynom.py @@ -441,15 +441,30 @@ class AbstractPolynom(Explicable): >>> C = A.replace_letter(2) >>> C < Expression [2, 2, *, 1, +]> + >>> e = Expression('2+3').simplify() + >>> D = A.replace_letter(e) + >>> D + < Expression [2, 5, *, 1, +]> + >>> for i in D.explain(): + ... print(i) + 2 ( 2 + 3 ) + 1 + 2 \times 5 + 1 """ + exp_to_replace = Expression(letter) + exp_to_replace.steal_history(letter) + postfix_exp = [ - Expression(letter) if i == self._letter + exp_to_replace if i == self._letter else i for i in self.postfix_tokens ] + ini_step = Expression.develop_steps(postfix_exp) - return Expression(postfix_exp) + ans = Expression(postfix_exp) + ans.this_append_before(ini_step) + + return ans def __eq__(self, other): try: