![]() |
|
![]() ![]() ![]() |
|
Inkvizitor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Нужно итеративное решение.
Я написал код, но он почему-то криво работает. НЕ могу найти ошибку. Помогите исправить. (defun vstavka (list1 list2) (do ((list3 nil)) ((null list2) list3) (cond ((null list1)(print list1) (progn (setq list3 (append list3 list2)) (setq list2 nil))) ((null list2) (progn (setq list3 (append list3 list1)) (setq list1 nil))) ((< list1 (car list2)) (print list1) (progn (append list3 (cons list1 nil)) (print list3)(print list1) (setq list1 nil))) (t (progn (setq list3 (append list3 (cons (car list2) nil))) (setq list2 (cdr list2)))) ) ) ) (trace vstavka) (vstavka 5 '(6 7)) |
|||
|
||||
svg |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 13.4.2005 Репутация: 14 Всего: 18 |
Это сообщение отредактировал(а) svg - 24.12.2006, 14:09 |
|||
|
||||
Inkvizitor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Я еще новичок. Вы могли бы объснить свой код, а то я в нем много не понимаю, или лучше скажите что в моем неправильно.
У меня ваш код не работает. Забыл сказать, что надо все сделать на XLISP. (defun nvstavka1 (elt list &key (test #'<) (key #'identity)) (let ((tail (member elt list :key key :test test))) (if tail (progn (rplacd tail (copy-list tail)) (rplaca tail elt) list) (nconc list (list elt))))) это выдает ошибку, пришлось убрать все агрументы по умолчанию. Запустил. Некорректно не работает. Например (nvstavka1 5 '(6 7)) возвращает (6 7 5). В первом примере я вообще ничего не понимаю. ЧТо делает do-vstavka, labels? Это сообщение отредактировал(а) Inkvizitor - 24.12.2006, 20:02 |
|||
|
||||
Inkvizitor |
|
|||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Всем спасибо за внимание. Я нашел ошибку. Тему можно удалять.
|
|||
|
||||
_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. |