Обобщенная операция
Используя
div-terms
, напишите процедуру
remainder-terms
, и с ее помощью определите
gcd-terms
, как показано выше. Напишите теперь процедуру
gcd-polys
, которая вычисляет НОД двух многочленов. (Процедура должна сообщать об ошибке, если входные объекты являются многочленами от разных переменных.) Установите в систему обобщенную операцию
greatest-common-divisor
, которая для многочленов сводится к
gcd-poly
, а для обыкновенных чисел к обыкновенному
gcd
. В качестве проверки, попробуйте ввести
(define p1 (make-polynomial 'x '((4 1) (3 -1) (2 -2) (1 2))))
(define p2 (make-polynomial 'x '((3 1) (1 -1))))
(greatest-common-divisor p1 p2)
и проверьте результат вручную.
Комментарии отсутствуют.