ЛИСП без vl-symbol-name
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > ЛИСП без vl-symbol-name

ЛИСП без vl-symbol-name

Ответ
Поиск в этой теме
Непрочитано 02.07.2009, 16:17 #1
ЛИСП без vl-symbol-name
Alan
 
CAD
 
Киев
Регистрация: 28.08.2003
Сообщений: 1,834

Что то у меня совсем закисли мозги
Нужен кусок текста без vl-symbol-name. Сейчас перебрасываю свою прожку под ZWCAD. А у китайцев не все заявленные функции работают, в том числе vl-symbol-name.
Есть список который нужно отсортировать по первой части. Вот так всё чудненько работает в Автокаде.
Код:
[Выделить все]
 
;; есть например список
(setq spmr '(("Км|C2" 2)
      ("Км|3" 3)
      ("Км|4" 4)
      ("Плм|2" 2)
      ("Плм|1" 1)
      ("XX|1" 4)
     )
) ;_ конец setq
;; сортируем его
(setq spmr (vl-sort spmr
      '(lambda (s1 s2)
         (< (vl-symbol-name (read (car s1)))
             (vl-symbol-name (read (car s2)))
         ) ;_ конец <
       ) ;_ конец lambda
    ) ;_ конец vl-sort
) ;_ конец setq
;; получаем результат
(("XX|1" 4) ("Км|3" 3) ("Км|4" 4) ("Км|C2" 2) ("Плм|1" 1) ("Плм|2" 2))
Кто может покопаться в своих старых текстах, помогите.
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Просмотров: 1725
 
Непрочитано 02.07.2009, 16:20
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


А такое не покатит?
Код:
[Выделить все]
(vl-sort smpr (function (lambda (a b) (< (car a) (car b)))))
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.07.2009, 16:53
#3
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


>Алексей.
Спасибо за быстрый ответ. Но!
В Автокаде твой текст у меня возвращает nil
А в ZWCAD ошибка.
Загружаем список
Загружается E:\2009_ZWCAD\Zacad.Lsp\test_sort.LSP
Есть такой
Команда: (("Км|C2" 2) ("Км|3" 3) ("Км|4" 4) ("Плм|2" 2) ("Плм|1" 1) ("XX|1" 4))
Запускаем
Команда: (vl-sort smpr (function (lambda (a b) (< (car a) (car b)))))
Ошибка: Нулевая функция
(FUNCTION (LAMBDA (A B) (< (CAR A) (CAR B))))
(VL-SORT SMPR (FUNCTION (LAMBDA (A B) (< (CAR A) (CAR B)))))
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 02.07.2009, 18:25
#4
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


смотри три варианта сортировки, в моих уроках рекурсий...
вариант 1
вариант 2
вариант 3
Удачи!
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 02.07.2009, 23:02
#5
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


Код:
[Выделить все]
 
(setq spmr '(("Км|C2" 2)
("Км|3" 3)
("Км|4" 4)
("Плм|2" 2)
("Плм|1" 1)
("XX|1" 4)
)
) ;_ конец setq
Код:
[Выделить все]
(vl-sort smpr (function (lambda (a b) (< (car a) (car b)))))
CB вне форума  
 
Автор темы   Непрочитано 03.07.2009, 00:06
#6
Alan

CAD
 
Регистрация: 28.08.2003
Киев
Сообщений: 1,834
<phrase 1=


CB, огромное спасибо за указание на мою невнимательность.
Алексей, ну а тебе ОГРОМНАЯ благодарность. Ты как всегда выручил.
Но в ZWCAD эта конструкция всё равно не работает.
Привожу протокол.
Команда: (setq spmr '(("Км|C2" 2)("Км|3" 3)("Км|4" 4)("Плм|2" 2)("Плм|1" 1)("XX|1" 4)))
(("Км|C2" 2) ("Км|3" 3) ("Км|4" 4) ("Плм|2" 2) ("Плм|1" 1) ("XX|1" 4))
Команда: (setq a (vl-sort spmr (function (lambda (a b) (< (car a) (car b))))))
Ошибка: Нулевая функция
(FUNCTION (LAMBDA (A B) (< (CAR A) (CAR B))))
(VL-SORT SPMR (FUNCTION (LAMBDA (A B) (< (CAR A) (CAR B)))))
(SETQ A (VL-SORT SPMR (FUNCTION (LAMBDA (A B) (< (CAR A) (CAR B))))))
Но kpblc, не был бы крЫс"ом!!!!! Заменил (function на '
Т.е. решение для ZWCAD (и кажется для BriksCAD)
(setq a (vl-sort spmr '(lambda (a b) (< (car a) (car b)))))
__________________
По теории майский жук летать не может.
Но он этого не знает. И летает...
Alan вне форума  
 
Непрочитано 03.07.2009, 09:24
#7
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406


При чем тут крыс - не очень ясно У тебя же у самого в начале было поставлено '
Это я уже по привычке заменил на function.
Но все равно спасибо
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > ЛИСП без vl-symbol-name



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Железобетонные подкрановые балки. Без предварительно напряженной арматуры!? Розмысл Железобетонные конструкции 9 14.08.2019 22:42
Определение слова помещение. Помещение без перекрытия. Aleks ManaeFF Поиск литературы, чертежей, моделей и прочих материалов 14 18.05.2015 06:42
Почему выполненяется только 1 sql запрос к ADODB без использования базы данных по умолчанию? Дима_ Программирование 8 26.02.2009 08:50
Стык внахлест без сварки Engineer SV Металлические конструкции 7 16.02.2009 18:56
Размерная цепь без выбора точки для 2-ой выносной, но с размером из ком строки? BM60 AutoCAD 6 06.02.2009 16:25