![]() |
|
|
![]()
|
|
| rocko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.12.2010 Репутация: нет Всего: нет |
Здравствуйте, помогите пожалуйста решить задачу в опрераторном стиле:
Есть список вида: ((1(2 3)4)(5 6 (7 8 9))(10 (11 12 13)(14 15 16))) необходимо его преобразовать в вид: ((1(2)4)(5 6(7))(10(11)(14))) Вот что вышло, помогите исправить ошибки... defun vvod() (progn (setq x (progn (princ "input matrix as one list") (terpri) (read))))) (defun res () (progn (setq y x) (setq x ()) (setq f ()) b1 (setq z (car y)) (go b2) b2 (cond ( (not (atom(car z))) (progn ( setq f (append f (list (caar z)))) (setq z (cdr z)) (cond ((not (null z)) (go b2))) ))) ( cond ((not (null z)) (progn (setq f (append f (list(car z)))) (setq z (cdr z)) (cond ((not (null z)) (go b2))) ))) (t (go m1)) m1 (setq x (append x f)) (setq f ()) (setq y (cdr y)) (cond ((not (null y)) (go b1))) ))
Это сообщение отредактировал(а) rocko - 28.12.2010, 12:22 |
|||
|
||||
| k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: нет Всего: 5 |
пример ни разу не объясняет, что на самом деле нужно сделать со списком.
что такое "операторный стиль"? это как-то связано с оператором ЭВМ? что за диалект? -------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
| rocko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.12.2010 Репутация: нет Всего: нет |
ну в каждом подсписке нужно оставить только голову...
и нужно использовать ф-и do и лейблы для решения задачи, без рекурсии и функционалов |
|||
|
||||
| k0rvin |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: нет Всего: 5 |
ну например так:
или так:
тест:
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||||
|
|||||||
| rocko |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 19.12.2010 Репутация: нет Всего: нет |
пишет ошибку на tagbody, when,only-head...может из-за другой версии ЛИСПа?
|
|||
|
||||
| k0rvin |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: нет Всего: 5 |
ну замените tagbody на progn, а when на if
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
|||
|
||||
![]()
|
| Правила форума LISP | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LISP | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |