Как написать функцию, удаляющую из каждого подсписка минимальный элемент (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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д