Глубина последнего вхождения элемента Y, удовлетворяющего некоторому предикату P, в список W - Lisp
Формулировка задачи:
Напишите функцию, определяющую глубину последнего вхождения элемента Y, удовлетворяющего некоторому предикату P, в список W.
Есть написанная программа. Помогите пожалуйста глупой девушке понять как проверить ее работоспособность. Т.е. как задавать предикаты, у меня XLisp. Очень буду благодарна за помощь!
(defun maxDepth1 (f s g) ; вызов для: предикат f, список s, текущая глубина g (cond ((null s) 0) ; если список пустой – глубина 0 ((listp (first s)) (max ;если первый элемент список – то максимум из (maxDepth1 f (rest s) g) ; глубины вхождения в этот спсок (maxDepth1 f (first s) (+ 1 g)); и хвоста ) ) ((funcall f (first s)) (max g ;если элемент не список и пердикат выполняется (maxDepth1 f (rest s) g) ; то максимум из текущей глубины и хвоста ) ) (t (maxDepth1 f (rest s) g)) ;иначе глубина вхождения для хвоста ) ) (defun maxDepth (p w) ;предикат для вызова (maxDepth1 p w 0) ;задаем начальную глубину = 0 )
Решение задачи: «Глубина последнего вхождения элемента Y, удовлетворяющего некоторому предикату P, в список W»
textual
Листинг программы
(maxDepth #'(lambda (x) (zerop (rem x 3)) Список) ;; поиск кратного трем
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д