Глубина последнего вхождения элемента Y, удовлетворяющего некоторому предикату P, в список W - Lisp

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

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

Напишите функцию, определяющую глубину последнего вхождения элемента Y, удовлетворяющего некоторому предикату P, в список W.
Листинг программы
  1. (defun maxDepth1 (f s g) ; вызов для: предикат f, список s, текущая глубина g
  2. (cond ((null s) 0) ; если список пустой глубина 0
  3. ((listp (first s)) (max ;если первый элемент список то максимум из
  4. (maxDepth1 f (rest s) g) ; глубины вхождения в этот спсок (maxDepth1 f (first s) (+ 1 g)); и хвоста
  5. )
  6. )
  7. ((funcall f (first s)) (max g ;если элемент не список и пердикат выполняется
  8. (maxDepth1 f (rest s) g) ; то максимум из текущей глубины и хвоста
  9. )
  10. )
  11. (t (maxDepth1 f (rest s) g)) ;иначе глубина вхождения для хвоста
  12. )
  13. )
  14. (defun maxDepth (p w) ;предикат для вызова
  15. (maxDepth1 p w 0) ;задаем начальную глубину = 0
  16. )
Есть написанная программа. Помогите пожалуйста глупой девушке понять как проверить ее работоспособность. Т.е. как задавать предикаты, у меня XLisp. Очень буду благодарна за помощь!

Решение задачи: «Глубина последнего вхождения элемента Y, удовлетворяющего некоторому предикату P, в список W»

textual
Листинг программы
  1. (maxDepth #'(lambda (x) (zerop (rem x 3)) Список) ;; поиск кратного трем

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


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

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

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

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

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

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