Списки и подсписки. Ошибка в программе - Lisp

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

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

Подскажите пожалуйста, что надо добавить или изменить в коде, чтобы программа работала. Задание: Даны списки L1,L2,L3. Если L1 и L2 являются подсписками L3, то сформировать новый список, удалив из L3 подсписки L1 и L2, в противном случае оставить L3 без изменения.
Листинг программы
  1. (defun prefix(X Y)
  2. ( (null X T)((null Y)nil) )
  3. ( cond( ( equal(car X)(car Y) )
  4. ( prefix(cdr X)(cdr Y) )
  5. )
  6. )
  7. )
  8. (defun subl(X Y)
  9. (cond((null X) T)
  10. ((null Y)nil)
  11. ((prefix X Y) T)
  12. ((subl X (cdr Y)) T)
  13. )
  14. )
  15. (defun delpref(X Y)
  16. (cond ((null X) Y)
  17. (T(delpref(cdr X)(cdr Y)))
  18. )
  19. )
  20. (defun delsubl(X Y)
  21. (cond((null X) Y)
  22. ((prefix X Y)(delpref X Y))
  23. ((subl X(cdr Y)(delsubl X(cdr Y))))
  24. )
  25. )

Решение задачи: «Списки и подсписки. Ошибка в программе»

textual
Листинг программы
  1. (defun prefix(X Y)
  2.     (cond ((null X) T)
  3.           ((null Y) nil)
  4.           ((equal  (car X) (car Y))
  5.            (prefix (cdr X) (cdr Y))
  6.           )
  7.     )
  8. )
  9.  
  10. (defun delsubl (X Y)
  11.     (cond ((null X) Y)
  12.           ((prefix X Y) (delpref X Y))
  13.           ((subl X (cdr Y)) (cons (car Y) (delsubl X (cdr Y))))
  14.     )
  15. )
  16.  
  17. (defun zadacha (L1 L2 L3)
  18.     (cond ((and (subl L1 L3) (subl L2 L3))
  19.            (delsubl L1 (delsubl L2 L3)))
  20.           (t L3)
  21.     )
  22. )

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


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

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

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

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

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

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