Getting some of the hardest answers look like decomposing the problems by applying easy but separate 'rules', kinda like programming in a REPL with functions/procedures. Or an SQL normalization of a database by appying a clear set of rules on querying tables.
Such as calculus rules on integration, series...
Lisp is great for this. if you like Scheme (Chicken Scheme or Racket have modules and settings for this) get SICP. If you prefer Common LISP, there's https://github.com/norvig/paip-lisp
If you read Macsyma's source code, you'll understand what's is Math trully about.
And, well, you have a modern Macsyma, FLOSS, called Maxima, which can run under SBCL or CLISP (two Common Lisp interpreters).
Such as calculus rules on integration, series...
Lisp is great for this. if you like Scheme (Chicken Scheme or Racket have modules and settings for this) get SICP. If you prefer Common LISP, there's https://github.com/norvig/paip-lisp
If you read Macsyma's source code, you'll understand what's is Math trully about.
And, well, you have a modern Macsyma, FLOSS, called Maxima, which can run under SBCL or CLISP (two Common Lisp interpreters).