![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.11.2009
Сообщений: 70
|
![]()
необходимо добавить к списку два элемента рекурсивным способом
(a b c d) преобразовать к (a b c d obj1 obj2) добавить объекты не составляет сложности подскажите, пожалуйста, как составить условие выхода из рекурсии |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Тут по-разному придумать можно. Первое, что пришло мне в голову: проверять, является ли второй аргумент(первый объект) нулевой ссылкой, если да, то завершаем рекурсию, если нет, то цепляем его к списку и вызываем ф-цию с вторым объектом, как вторым параметром, а третьим передаём nil. То есть как-то так:
Код:
Код:
Последний раз редактировалось netrino; 24.02.2011 в 13:02. Причина: let лишний убрал |
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 13.11.2009
Сообщений: 70
|
![]() Цитата:
Последний раз редактировалось s2dentishe; 24.02.2011 в 14:22. |
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Странно, у меня всё работает, проверил на нескольких реализациях(http://ideone.com/ACcxc). Вы нигде не допустили ошибку? А если предварительно сохранить значение (last в переменную, а затем уже к ней применить (rplacd?
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рекурсия. Лисп | s2dentishe | Помощь студентам | 4 | 22.02.2011 19:50 |
Лисп (рекурсии и списки) | Dmitro62 | Помощь студентам | 0 | 19.01.2011 20:11 |
Задача на ЛИСП | Alexey123 | Помощь студентам | 2 | 24.12.2010 16:27 |
Лисп сопоставить | leest | Помощь студентам | 9 | 09.03.2010 23:13 |
выход из рекурсии | L_M | Помощь студентам | 9 | 03.10.2008 18:03 |