Чтобы реализовать производную от данного многочлена, мне нужно разложить многочлен, т. е. (* 3 x y)
должен быть произведением 3
и (* x y)
.Пара? функция, применимая к Quote in Racket
Так я реализовал функцию multiplicand
, чтобы получить второй фактор продукта:
(define (multiplicand p)
(let ((second-factor (cdr (cdr p))))
(if (pair? second-factor) (cons '* second-factor)
second-factor)))
и тестовый код
(multiplicand '(* x y))
Но выход '(* y)
. Похоже, что условие (pair? second-factor)
равно #true
с second-factor
значениями 'y
.
Может кто-нибудь помочь мне в этом, спасибо большое.
Это именно то, что мне нужно! – stanleyerror