> 1 <

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

Ruslan

Members


Статус

3 сообщений

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

#2218   2010-05-29 17:23 GMT+3 часа(ов)      
Собсна, проблема заключается в том, что необходимо сделать это с обработкой подсписков. без обработки получилось как-то так:
(defun ln (L a)
(lastnum L a 0)
 
(defun lastnum (L a x)
(Cond ((NOT (Member a L)) x)
((Member a L) (lastnum (Cdr (Member a L)) a (+ x (- (Length L) (Length (Member a L))) 1)))
)
)
)


Необходимо сделать, чтобы подсписки тоде учитывались. То есть если имеется список (a (a b) a (b a) v) функция должна выдавать ответ 6. Прошу, помогите чайнику пожалуйста. Среда muLisp.

LinkFly

Members


Статус

152 сообщений

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

#2244   2010-06-01 13:23 GMT+3 часа(ов)      
При каждой итерации вычислять длину - это не смешно. Забей на member, обходи список сам.
> 1 <


Онлайн :

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