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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Функция vl-remove-if-not работает не так, как я хочу

Функция vl-remove-if-not работает не так, как я хочу

Ответ
Поиск в этой теме
Непрочитано 26.01.2005, 14:18 #1
Функция vl-remove-if-not работает не так, как я хочу
Torino
 
Штаб
Регистрация: 21.08.2003
Сообщений: 943

Код:
[Выделить все]
  (vl-remove-if-not
    '(lambda (x)
       (or (= (car x) 10) (= (car x) 40) (= (car x) 41))
     )
    ent-list
  )
где ent-list
Код:
[Выделить все]
((-1 . <Entity name: 7efb0e20>) (0 . "LWPOLYLINE") (330 . <Entity name: 7efa0cf8>) (5 . "8C5C") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "0") (100 . "AcDbPolyline") (90 . 2) (70 . 0) (43 . 0.0) (38 . 0.0) (39 . 0.0) (10 222.0 333.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (10 444.0 555.0) (40 . 0.0) (41 . 0.0) (42 . 0.0) (210 0.0 0.0 1.0))
По идее в результете работы функции должен получаться список
Код:
[Выделить все]
((10 222.0 333.0) (40 . 0.0) (41 . 0.0)(10 444.0 555.0) (40 . 0.0) (41 . 0.0))
Однако на выходе я получаю список без изменений. Почему?
Просмотров: 5379
 
Непрочитано 26.01.2005, 14:53
#2
Геннадий aka PG

Машиностроение, Проектирование
 
Регистрация: 15.09.2003
Москва
Сообщений: 1,113
<phrase 1=


ЧТо тут "X" ?
может (car x) заменить на (car (car x)) ?
__________________
С уважением,
Геннадий aka PG
Геннадий aka PG вне форума  
 
Автор темы   Непрочитано 26.01.2005, 15:12
#3
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Проблема решена (спасибо Эдуарду):

Я думал, что функция vl-remove-if-not модифицирует исходный список (ent-list)
А оказывается измененный список является возвращаемым значением этой функции.

>>Геннадий aka PG
(car x) извлекает первый элемент точечной пары.
Torino вне форума  
 
Непрочитано 26.01.2005, 15:17
#4
{Smirnoff}

Инженер по системам безопасности
 
Регистрация: 23.11.2003
Рига
Сообщений: 1,099


Код:
[Выделить все]
(vl-remove-if-not '(lambda (x)(member (car x) '(10 40 41)))ent-list)
В данном случае красивше
{Smirnoff} вне форума  
 
Автор темы   Непрочитано 26.01.2005, 15:18
#5
Torino


 
Регистрация: 21.08.2003
Штаб
Сообщений: 943
<phrase 1=


Твоя правда
Torino вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Функция vl-remove-if-not работает не так, как я хочу

Размещение рекламы