Как написать функцию, удаляющую из каждого подсписка минимальный элемент (HomeLisp)

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

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

снова пробую решить сам и не могу... написать функцию, удаляющую из каждого подсписка минимальный элемент. и еще посоветуйте хороший учебник по lisp (пока начал читать Мир Лиспа -Сеппянен )

Решение задачи: «Как написать функцию, удаляющую из каждого подсписка минимальный элемент (HomeLisp)»

textual
Листинг программы
(defun remove-if (p lst &KEY (count NIL) (from-end NIL)) 
   (COND (from-end (reverse (remove-if p (reverse lst) :count count :from-end NIL))) 
             (T (COND ((NULL count) 
                           (COND ((NULL lst) NIL) 
                                     ((FUNCALL p (CAR lst)) (remove-if p (CDR lst))) 
                                    (T (CONS (CAR lst) (remove-if p (CDR lst)))))) 
                          (T (COND ((NULL lst) NIL) ((= count 0) lst) 
                              ((FUNCALL p (CAR lst)) (remove-if p (CDR lst) :count (SUB1 count))) 
                              (T (CONS (CAR lst) (remove-if p (CDR lst) :count count)))))))))
 
 
==> remove-if
 
 
Файл C:\HomeLisp\laba3\88.lsp успешно загружен
(remove-if '(1 2 ((3 4) (5 6) (((7 8))))))
 
PairLis: Слишком мало фактических параметров
==> ERRSTATE

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


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

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

5   голосов , оценка 4.4 из 5
Похожие ответы