> 1 <

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

Gomerchik

Members


Статус

1 сообщений

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

#6840   2012-12-19 20:19 GMT+3 часа(ов)      
Извлечь из ассоциативного списка элементы, ключи которых удовлетворяют заданным условиям.
Сделал вот так(код ниже), однако постоянно выводит nil, проблема либо в коде, либо в пример подобрал не правильно! подскажите!?
(defun f3 (lst key)
(cond
(
(null lst)
nil
)
(
(eq (caar lst) key)
(cons
(cadar lst)
(f3 (cdr lst) key)
)
)
(t
(f3 (cdr lst) key)
)
)
)
(f3 '((q.1) (w.2) (e.3)) '(3))

netrino

Members


Статус

3 сообщений

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

#6841   2012-12-20 01:44 GMT+3 часа(ов)      
Наверное, должно быть как-то так
 
(defun f3 (lst key)
(cond
((null lst) nil)
((eq (caar lst) key) (cons (cdar lst)
(f3 (cdr lst) key)))
(t (f3 (cdr lst) key))))
 


И вызывать так:
 
CL-USER> (f3 '((q . 1) (w . 2) (e . 3) (w . 4) (d . 5)) 'w)
(2 4)
 
> 1 <


Онлайн :

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