Непонятная ошибка в моей программе производной на Common Lisp

Узнай цену своей работы

Формулировка задачи:

Мое задание Написать программу которая берет производную от одной переменной То что я уже сделала:
Листинг программы
  1. (defun diff( const x)
  2. (cond (( atom const)
  3. (if (eq const x) 1 ;если просто x возвращаем 1
  4. 0))
  5. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  6. ; Данный кусок кода не работает и я не понимаю почему
  7. ; (нужно продифференцировать x возведенный в степень)
  8. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  9. ; Если следующий символ это ^
  10. (( eq (first const) '^)
  11. (list '+ ;то пишем +
  12. ( list '* (third const) ; третий элемент это число в степень которого мы возводим (умножим на него)
  13. (list'^ ;выводим ^
  14. (second const) ;выводим x
  15. ( (- third 1) third ))))) ; выводим третий элемент - 1
  16. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  17. ; Тут он заканчивается
  18. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  19. ; Если следующий символ это +
  20. (( eq (first const) '+)
  21. (list '+ ;то пишем +
  22. (diff0 (second const) x) ; вызываем снова ту же функцию второго символа от x
  23. (diff0 (third const) x))) ; вызываем снова ту же функцию третьего символа строки от x (если + считать 1)
  24. ; Если следующий символ это *
  25. (( eq (first const) '*)
  26. (list '+ ;то пишем +
  27. (list '* ; затем *
  28. (diff0 (second const) x) ; вызываем снова ту же функцию второго символа от x
  29. (third const)) ;выводим x
  30. (list '* ; затем еще *
  31. (diff0 (third const) x) ; вызываем снова ту же функцию третьего символа строки от x
  32. (second const)))) ; второй символ
  33. (t const))); все другое выводим как есть
Помогите разобраться, объясните что не так

Решение задачи: «Непонятная ошибка в моей программе производной на Common Lisp»

textual
Листинг программы
  1. Form:
  2.   ((- THIRD 1) THIRD)
  3. Compile-time error:
  4.   illegal function call
  5.    [Condition of type SB-INT:COMPILED-PROGRAM-ERROR]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут