|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
lisp помогите обработать список
Проектировщик ВК. LISP-любитель.
Москва
Регистрация: 15.12.2003
Сообщений: 1,202
|
||
Просмотров: 10101
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
В качестве первой прикидки:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Вчера в этой теме
я уже решал подобную задачу только у меня были не списки а пары и значение в виде строки (изменил cons на list, cdr на cadr и убрал atof) Код:
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Всех поздравляю с наступившим НОВЫМ ГОДОМ
![]() у меня похожая ситуация но нужно суммировать цифры в зависимости от первых двух элементов под списков имеется список типа (("a" "a" 1) ("a" "a" 2) ("a" "b" 1) ("a" "b" 2) ("b" "a" 1) ("b" "a" 2) ("b" "b" 1) ("b" "b" 2) ("c" "a" 1) ("c" "a" 2) ("c" "b" 1) ("c" "b" 2)) должны получить (("a" "a" 3) ("a" "b" 3) ("b" "a" 3) ("b" "b" 3) ("c" "a" 3) ("c" "b" 3)) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
По-быстрому:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Кулик Алексей aka kpblc, спасибо за оперативный ответ все хорошо но если будет список
(("СК 105-3" "1") ("СК 105-3" "2") ("СК 105-5" "3") ("СК 105-5" "4") ("СК 105-5" "5") ("СК 105-3" "6") ("СК 105-3" "10"))) то получим (("СК 105-3" "1" "10" "2" "6") ("СК 105-5" "3" "4" "5")) а хотелось бы (("СК 105-3" "1" "2" "6" "10") ("СК 105-5" "3" "4" "5")) Добавил спасибо разобрался Последний раз редактировалось WST, 07.11.2014 в 16:09. |
|||
![]() |
|
||||
Регистрация: 28.07.2008
Мурманск
Сообщений: 208
![]() |
Код:
Писал на скорую руку исключительно фана для, поэтому нужно, чтобы имена переменных с именами A B и так далее по тексту не использовались до выполнения кода.
__________________
Мне не нужно сделать за меня. Если я что-то ищу, то пути решения. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Kirill_Ja, Если честно не понял юмора спросонья. Суммируя предыдущий опыт я б написал бы так
Код:
а если хочешь юмора, вот тебе смешная функция: Код:
Последний раз редактировалось gomer, 16.11.2014 в 16:37. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Ну все просто: берешь шашлык на шампуре и три шампура сверху, снимаешь мяско и нанизываешь на первый шампур, снимаешь помидорчик, нанизываешь на второй шампур. и так пока есть что снимать. потом помидорчики нанизываешь на третий шампур, потом мяско, в конце концом отдаешь третий шампур генацвале...
|
|||
![]() |
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Добрый день. Подыму тему.
Помогите пожалуйста, есть список (1 2 2 2 3 4 5 6 6 7 8 9 15 20 21 21 21 21 23 24 n) нужно получить два списка: 1. ((2 3)(6 2)(21 4)) где вторые числа подсписка количество первых в исходном списке 2. ((10 11 12 13 14)(16 17 18 19)(22)(25 26 .... n-2 n-1)) недостающие числа в исходном списке Последний раз редактировалось WST, 16.07.2021 в 13:34. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Тупо в лоб:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Две последние строчки как раз и возвращают просимое: одна - один список, вторая - второй. ПРисваивай своим переменным и вперед ))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Цитата:
(setq lst1(vl-remove-if-not (function (lambda (x) (= (cdr x) 1))) res) lst2(vl-remove-if (function (lambda (x) (= (cdr x) 1))) res) ) Command: !lst (1 2 2 2 3 4 5 6 6 7 8 9 15 20 21 21 21 21 23 24) Command: (reverse lst1) ((1 . 1) (3 . 1) (4 . 1) (5 . 1) (7 . 1) (8 . 1) (9 . 1) (15 . 1) (20 . 1) (23 . 1) (24 . 1)) Command: (reverse lst2) ((2 . 3) (6 . 2) (21 . 4)) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Ну и ?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
(mapcar (function car) (vl-sort (vl-remove-if (function (lambda (x) (= (cdr x) 1))) res) (function <))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 21.04.2011
Сообщений: 135
|
Цитата:
((24 . 1) (23 . 1) (21 . 4) (20 . 1) (15 . 1) (9 . 1) (8 . 1) (7 . 1) (6 . 2) (5 . 1) (4 . 1) (3 . 1) (2 . 3) (1 . 1)) Command: (mapcar (function car) (vl-sort (vl-remove-if (function (lambda (x) (= (cdr x) 1))) res) (function <)) (_> ) bad argument type: VLA-OBJECT nil Command: (mapcar (function car) (vl-sort (vl-remove-if (function (lambda (x) (= (cdr x) 1))) res) (function <))) bad argument type: VLA-OBJECT nil скобки не хватает может я не там ее поставил? Command: (vl-remove-if (function (lambda (x) (= (cdr x) 1))) res) ((21 . 4) (6 . 2) (2 . 3)) Command: (vl-sort (vl-remove-if (function (lambda (x) (= (cdr x) 1))) res) (function <)) bad argument type: VLA-OBJECT nil что то не так |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,426
|
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
только для целых чисел
Код:
|
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Lisp показывает ошибку Плохо сформированный список на входе | BBLainer | LISP | 20 | 27.04.2010 18:40 |
Lisp, помогите с алгоритмом "подтягивания" поллиний | 2123 | LISP | 1 | 03.02.2010 23:58 |
Lisp: Список элементов в слоях | ALFMario | LISP | 4 | 29.04.2008 17:26 |
Помощь по Лире | Серега М | Лира / Лира-САПР | 52 | 28.05.2007 02:47 |
Помогите отладить lisp программу | Мишаня | LISP | 7 | 31.07.2006 12:54 |