![]() |
|
![]() ![]() ![]() |
|
Lion69 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.10.2009 Репутация: нет Всего: нет |
нужно сделать через рекурсию использую базовые ф-ции такую вещь
из (a b c d ) на входе должно получится ((((a)b)c)d) на выходе.... я сделал такое
но оно выдает список наоборот... > (fak '(5 2 4 86 1 2 )) ((((((2) 1) 86) 4) 2) 5) мне не нужна прям готовая ф-я.. мне нужна подсказка..... как делать и самое главно с чего начать... Это сообщение отредактировал(а) Lion69 - 2.10.2009, 17:25 |
|||
|
||||
Ryukzak |
|
|||
Новичок Профиль Группа: Участник Сообщений: 40 Регистрация: 12.9.2006 Репутация: нет Всего: 1 |
Рекурсия позволяет собирать структуры от внутренних к внешним. Так что придётся либо развернуть список, либо реализовать его хвостовой рекурсией.
|
|||
|
||||
Lion69 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.10.2009 Репутация: нет Всего: нет |
как развернуть список я не знаю... это всмысле реверс или как? в таком случае как его сделать в рекурсии...?
я думал это и есть хвостовая рекурчия....... ЗЫ.. я меньше месяча лисп учу... так что извеняйте за может быть глупые вопросы Добавлено через 5 минут и 3 секунды я кстате над этой прогой уже второй день бьюсь... хотел бы уже начать что то еще делать ... но не могу..... дошло до того что аж сюда на форум обратился..... не могу понять что тут делать.... |
||||
|
|||||
Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: нет Всего: 173 |
Стандартный приём функционального программирования — протаскивать через цепочку рекурсивных вызовов значение-аккумулятор.
Как обернуть эту функцию, чтобы список был единственным параметром, думаю, понятно. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
Lion69 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.10.2009 Репутация: нет Всего: нет |
Void, извини но не понятно.....как сделать это для одного списка? типа (a b c d)???
и еще мне я не знаю что такое IF.... это типа такая запись терминальной ветви.....?(я ведь говорил что новичок...) если не сложно то помоги... а то что то по истечиние двух дней игр с этой задачей что то вообще соображать перестал... Это сообщение отредактировал(а) Lion69 - 2.10.2009, 20:52 |
|||
|
||||
Void |
|
||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: нет Всего: 173 |
Сделать из головы (car) список из одного элемента и передать как первый параметр (аккумулятор), хвост передать как второй.
Для порядка можно функции сделать вложенными:
Но на данном этапе, наверное, не стоит заморачиваться. Условный оператор, однако. (if условие если-истина если-ложь). -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
Lion69 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.10.2009 Репутация: нет Всего: нет |
Void, спасибо... правда я плохо понимаю как оно дейтвует... все таки я привык к терминальной ветви а за ней должна идти сама рекурсия... ну ладно это такое.... еще раз спасибо....
да... нащет ифа... я просто не понил что этот условний оператор делает... имено в этом примере... а не вообще... не нужно меня причислять к слабоумным...))) |
|||
|
||||
Void |
|
||||||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: нет Всего: 173 |
Ну и в чём проблема?
Ну извиняюсь, вопрос неоднозначных толкований вроде не допускает, так что я ответил на него ![]() -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||||
|
|||||||
Lion69 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 2.10.2009 Репутация: нет Всего: нет |
![]() |
|||
|
||||
_sg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 119 Регистрация: 16.5.2007 Репутация: 2 Всего: 2 |
как вариант:
--------------------
vk.com/ansicommonlisp |
|||
|
||||
![]() ![]() ![]() |
Правила форума LISP | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | LISP | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |