![]() |
|
![]() ![]() ![]() |
|
adejneka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 9 Всего: 11 |
После сортировки списка пробежаться по нему и объединить последовательные записи с одинаковым ключом:
((a . 1) (b. 2) (b . 4) (c . 3)) => ((a . (1)) (b . (2 4)) (c . (3))) Пара замечаний по стилю. - Нехорошо присваивать значения неописанным глобальным переменным (типа R в BISEARCH и L в DEMO). В Вашем случае лучше воспользоваться LET. - COND нужен специально для разбора нескольких случаев:
В READSTRING проверку (= INDEX 1) можно заменить проверкой (= INDEX 0). Тогда функция будет работать со строками нулевой длины и можно будет убрать копию SETQ. |
|||
|
||||
Agarwaen |
|
|||
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.1.2007 Репутация: нет Всего: нет |
Вот вариант с хеш-таблицей всё работает как надо. Если есть замечания, пишите.
|
|||
|
||||
adejneka |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 8.7.2005 Где: Москва, Россия Репутация: 9 Всего: 11 |
Забыл сразу написать: поиск элемента с заданным номером в списке - операция медленная. Лучше было перед поиском (или перед сортировкой) перевести список в вектор.
|
|||
|
||||
linuxfan |
|
|||
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 11.10.2006 Репутация: 1 Всего: 1 |
||||
|
||||
![]() ![]() ![]() |
Правила форума LISP | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | LISP | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |