Дифференцирование нескольких термов

Расширьте программу дифференцирования так, чтобы она работала с суммами и произведениями любого (больше двух) количества термов. Тогда последний из приведенных выше примеров мог бы быть записан как

(deriv '(* x y (+ x 3)) 'x)

Попытайтесь сделать это, изменяя только представление сумм и произведений, не трогая процедуру deriv . Тогда, например, процедура addend будет возвращать первое слагаемое суммы, а augend сумму остальных.


Комментарии отсутствуют.

Необходима авторизация

Вы должны авторизоваться для создания комментария.

Вход
(check-equal? (deriv '(* x y) 'x) 'y)
(check-equal? (deriv '(* x y (+ x 3)) 'x) '(+ (* x y) (* y (+ x 3))))