Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с задачей 
:(
    Опции темы
aik2029
Дата 19.4.2009, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Скажите, как можно (и можно ли вообще) превратить список вида

(1 (2 (3 4) 5) )

в такой вид: 

(1 2 3 4 5)

Это сообщение отредактировал(а) aik2029 - 21.4.2009, 19:24
PM MAIL   Вверх
NightmareZ
Дата 16.9.2009, 10:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


[хакер]
**


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

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



Scheme

Код

(define (iter-append lst1 lst2)
    (if (= (length lst2) 0)
        lst1
        (if (list? (car lst2))
            (iter-append
                (iter-append lst1 (car lst2))
                (cdr lst2))
            (iter-append
                (append lst1 (list (car lst2)))
                (cdr lst2)))))


Вызываем:
Код

(iter-append '() '(1 (2 (3 4) 5)))

Получаем:
Код

(1 2 3 4 5)


Это сообщение отредактировал(а) NightmareZ - 17.9.2009, 13:16


--------------------
NightmareZ.net - мой блог и сайт, мои проекты и прочий трэш
Ely-Art.ru - наша маленькая домашняя арт-студия
mugcraft.ru - кружки на любой вкус
PM WWW ICQ Skype GTalk AOL YIM   Вверх
VH_
Дата 17.9.2009, 07:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Хювёнен-Сеппянен "Мир Лиспа" т.1:
Код
(defun ONE-LEVEL (L) ; в оригинале В-ОДИН-УРОВЕНЬ
 (cond
  ((null L) nil)
  ((atom L) (cons L nil)) ; исправлено, в оригинале (cons (car L) nil)
  (T
   (append
    (ONE-LEVEL (car L))
    (ONE-LEVEL (cdr L))))))


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


Шустрый
*


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

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



Код

(defun flat (w &optional acc) 
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))

> (flat '(1 (2 (3 4) 5)))
(1 2 3 4 5)

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

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

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


 




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


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

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