PLUSPOL(a,b) if a=() then return b else if b=() then return a else ea:=first first a; eb:=first first b; ca:=second first a; a=((ea ca) ...) cb:=second first b; b=((eb cb) ...) return if ea > eb then cons(first a,pluspol(rest a,b)) else if ea < eb then cons(first b,pluspol(rest b,a)) else if ca + cb = 0 then pluspol(rest a,rest b) else cons(list(ea,ca + cb),pluspol(rest a,rest b)) fi fi fi fi fi
TIMESPOL(a,b) if a=() or b=() then return () else ea:=first first a; eb:=first first b; ca:=second first a; a=((ea ca) ...) cb:=second first b; b=((eb cb) ...) return cons(list(ea + eb,ca*cb), pluspol(timespol(list first a,rest b), timespol(rest a,b)) ) fi