Предыдущая страница [1] > 2 <

Автор Сообщение

Jack

Members


Статус

17 сообщений

Где: Latvia
Род занятий:
Возраст:

#5353   2011-12-17 16:57 GMT+3 часа(ов)      
Спасибо большое за отзывчивость!
Но у меня есть ещё одна не большая просьба...
Можно ли как то реализовать эту задачу использую несколько функций?
У меня есть наброски (кусок программы - одна из функций, так сказать), было бы замечательно если бы её можно было бы включить в программу..
Я был бы очень признателен, если бы вы могли бы показать как переделать её используя несколько функций (в идеальном случае, используя и ниже приведенную функцию)
Эта функция проверяет есть ли элемент Х в списке L:
(DEFUN MEM2 (X L) (
COND
((NULL L) NIL)
(T (OR (COND((ATOM(CAR L))(EQUAL X (CAR L)))
(T (MEM2 X (CAR L)))
)
(MEM2 X (CDR L))
)
)
))


Спасибо заранее!
Очень признателен Вам за Вашу помощь и отзывчивость!

megamanx

Members


Статус

307 сообщений

Где: Russia
Род занятий:
Возраст:

#5354   2011-12-17 18:49 GMT+3 часа(ов)      
(defun foo(L)
(let ((C nil))
(labels ((ret (L)
(cond
((null L) nil)
((null (car L)) (cons '() (ret (cdr L))))
((listp (car L))
(let ((ret-car-l (ret (car L))))
(if (null ret-car-l)
(ret (cdr L))
(cons ret-car-l (ret (cdr L))))))
(T (if (mem2 (car L) C)
(ret (cdr L))
(progn
(setf C (cons (car L) C))
(cons (car L)(ret (cdr L)))))))))
(reverse (ret (reverse L))))))
I wish I'd made you angry earlier


Онлайн :

0 пользователь(ей), 30 гость(ей) :