Тема: Сортировка списков

подскажите, знающие люди!
Есть список точек (3Д), его надо отсортировать по возрастанию, начиная с точек с самыми мелкими координатами. одинаковые точки удалять. Например, есть список
((-1000.0 -100.0 -10.0) (200.0 400.0 -50.0) (-500.0 -200.0 -50.0) (200.0 300.0 0.0) (200.0 400.0 -50.0))
Мне надо получить нечто типа
((-1000.0 -100.0 -10.0) (-500.0 -200.0 -50.0) (200.0 300.0 0.0) (200.0 400.0 -50.0))
Сначала делается сортировка по х, потом - по y, потом - по z.
Может, есть у кого готовое решение?

Re: Сортировка списков

Поиск поможет

Re: Сортировка списков

> Алексей
здесь две подзадачи
сортировка по Х
сортировка по Y, при равных Х
сортировка по Z, при равных Y и X (если надо)
иначе не понятно что должно быть раньше
(-100 100 0)
(100 -100 0)
По х
(vl-sort '(point list) '(lambda (s1 s2)(< (car s1) (car s2))))
Где-то была у меня такая функция.
Постараюсь найти

Re: Сортировка списков

> ЯR
В точку.
Не так давно решали эту задачку!!!

Re: Сортировка списков

> PalStudio

(vl-sort
 (vl-sort
  (vl-sort q_PtLS '(lambda (q_v1 q_v2)(< (car q_v1) (car q_v2)))); x
   '(lambda (q_v1 q_v2)(And (equal (car q_v1)(car q_v2) 0.001)(< (cadr q_v1) (cadr q_v2)))));y
 '(lambda (q_v1 q_v2)(And (equal (car q_v1)(car q_v2) 0.001)(equal (cadr q_v1)(cadr q_v2) 0.001)(< (caddr q_v1) (caddr q_v2)))))

Re: Сортировка списков

Готовые решения на VB есть здесь:
http://www.dmk.ru/files.php
Visual Basic Готовые алгоритмы

Re: Сортировка списков

> ЯR
Спасибо, не сообразил.

> PalStudio
Попробую, благодарю.

> LeonidSN
К сожалению, требуется именно LISP.