> 1 <

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

Badoer

Members


Статус

4 сообщений

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

#3638   2010-12-09 02:31 GMT+3 часа(ов)      
Доброго времени суток! Помогите пожалуйста решить следующее задание:

Используя приемы рекурсии в Лиспе, выполнить преобразования:
Получая в качестве исходного любой многоуровневый список вида
(a b c (d e) f g (h i (j k) l) m n)
образовать результирующий список вида
(a b (c d e) f (g h (i j k) l) m n)
т.е., во всех уровнях списка атомы, стоящие непосредственно перед открывающими скобками подсписков, включить в состав этих подсписков. Визуально это выглядит как перемещение открывающих скобок всех подсписков на одну позицию влево.

Спасибо за внимание.

megamanx

Members


Статус

307 сообщений

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

#3639   2010-12-09 03:49 GMT+3 часа(ов)      
(defun moveleft (L)
(cond
((null L) nil)
((null (cdr L)) (list (car L)))
((listp (cadr L)) (cons (moveleft (cons (car L) (cadr L))) (moveleft (cddr L))))
(T (cons (car L) (moveleft (cdr L))))))
>> (moveleft '(a b c (d e) f g (h i (j k) l) m n))
>> (a b (c d e) f (g h (i j k) l) m n)
 
I wish I'd made you angry earlier

Badoer

Members


Статус

4 сообщений

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

#3647   2010-12-09 20:22 GMT+3 часа(ов)      
Огромное Вам спасибо!
> 1 <


Онлайн :

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