Maxima manipula polinomios como objetos simbólicos.

Tiene implementada la aritmética de los polinomios.

2*x+3*x^3;

3*x^3-5*x^3+x+1;

(x+1)^2;

Un ejemplo de "evaluación perezosa" ("lazy evaluation")

(x+1)^2-x^2;

expand((x+1)^2);

expand((x+1)^2-x^2);

factor(expand(x+1)^2);

x^3/x^2;

(x-1)^3/(x-1);

(a*x+1)^2/(a*x+1);

(a*x+1)^2/(b*x+1);

(2*x^2+4*x^3)*(x^5+x+1);

Otro ejemplo de "evaluación perezosa"

expand((2*x^2+4*x^3)*(x^5+x+1));

%;

factor(%);

Nótese que el símbolo % tiene como valor el de la última expresión evaludada.

Además %oN es un símbolo que tiene como valor el resultado de la evaluación
de la línea de comandos %iN (aquí N es un número entero mayor o igual que 1).

%o14;

%;

1/x+2*x/(x+1);

ratsimp(1/x+2*x/(x+1));

expand(%);

rat(%);

gcd((x+1)*x^2, 2*x);

gcd(24,2);

lcm(3,5);

lcm(3*x, 5*(x+1));

lcm(3*x^2+5*x^4+x, 4*x+2*x^3+x);

gcd(3*x^2+5*x^4+x, 4*x+2*x^3+x);

divide(2*x^2+1,x);

A:divide(2*x^4+x^3+x+1,3*x^2+1);

expand(A[1]*(3*x^2+1)+ A[2]);

A[1]; A[2];

Nótese la sintaxis A: expresion

A[1] (el cociente) y

A[2] (el resto)

remainder(2*x^4+x^3+x+1,3*x^2+1);

quotient(2*x^4+x^3+x+1,3*x^2+1);

Sobre el algoritmo de "ordenación" de las expresiones evaluadas

1/x^2+(x+1)/x+1/x;

Otro ejemplo de "evaluación perezosa" ... 

taylor(sin(x),x,0,10);

taylor(sin(x),x,0,20);

taylor(log(x),x,0,3);

taylor(log(x),x,1,8);