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

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

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

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

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

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

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


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

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

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

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

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

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