Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Lisp функция ONION 
:(
    Опции темы
ausar
Дата 20.5.2009, 07:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Помогите написать функцию из учебника она называется "луковица" (onion function) Суть в том чтобы при помощи рекурсии построить список с заданным уровнем вложенности. Например:
при вызове (onion LuK 4) выводится: ((((LUK)))). При вызове должен передваться параметр N - уровень вложенности и X - символ в центре луковицы. Получилось вот так но конечно же не работает

Код

(defun (ONION (X N) 
         (if (= n 0) n (cons (ONION (- n 1)) nil)
        )
)



Может кто знает как правильно? Помогите а?
PM MAIL   Вверх
VH_
Дата 20.5.2009, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 182
Регистрация: 31.10.2006

Репутация: 10
Всего: 11



"Обычный" LISP:
Код
(defun ONION (X N) 
 (if (zerop N) X
  (cons (ONION X (1- N)) nil)))

PM MAIL   Вверх
ausar
Дата 20.5.2009, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 127
Регистрация: 3.8.2007

Репутация: нет
Всего: нет



Ой! VH большое спасибо! заработало!!
PM MAIL   Вверх
_sg
Дата 25.4.2014, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 16.5.2007

Репутация: 2
Всего: 2



как вариант:
Код

(defun onion-n (n &optional (m n))
  (if (zerop n) m (list (onion-n (1- n) m))))
 
> (onion-n 7)
(((((((7)))))))

--------------------
vk.com/ansicommonlisp
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0431 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.