Непонятная ошибка в моей программе производной на Common Lisp
Формулировка задачи:
Мое задание
Написать программу которая берет производную от одной переменной
То что я уже сделала:
Помогите разобраться, объясните что не так
Листинг программы
- (defun diff( const x)
- (cond (( atom const)
- (if (eq const x) 1 ;если просто x возвращаем 1
- 0))
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Данный кусок кода не работает и я не понимаю почему
- ; (нужно продифференцировать x возведенный в степень)
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Если следующий символ это ^
- (( eq (first const) '^)
- (list '+ ;то пишем +
- ( list '* (third const) ; третий элемент это число в степень которого мы возводим (умножим на него)
- (list'^ ;выводим ^
- (second const) ;выводим x
- ( (- third 1) third ))))) ; выводим третий элемент - 1
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Тут он заканчивается
- ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ; Если следующий символ это +
- (( eq (first const) '+)
- (list '+ ;то пишем +
- (diff0 (second const) x) ; вызываем снова ту же функцию второго символа от x
- (diff0 (third const) x))) ; вызываем снова ту же функцию третьего символа строки от x (если + считать 1)
- ; Если следующий символ это *
- (( eq (first const) '*)
- (list '+ ;то пишем +
- (list '* ; затем *
- (diff0 (second const) x) ; вызываем снова ту же функцию второго символа от x
- (third const)) ;выводим x
- (list '* ; затем еще *
- (diff0 (third const) x) ; вызываем снова ту же функцию третьего символа строки от x
- (second const)))) ; второй символ
- (t const))); все другое выводим как есть
Решение задачи: «Непонятная ошибка в моей программе производной на Common Lisp»
textual
Листинг программы
- Form:
- ((- THIRD 1) THIRD)
- Compile-time error:
- illegal function call
- [Condition of type SB-INT:COMPILED-PROGRAM-ERROR]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д