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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите найти ошибку в коде

Помогите найти ошибку в коде

Ответ
Поиск в этой теме
Непрочитано 12.07.2011, 01:14 #1
Помогите найти ошибку в коде
proektant-minsk
 
Проектировщик ОВ
 
Минск
Регистрация: 15.10.2010
Сообщений: 42

Код:
[Выделить все]
 (setq q	(list 
(list (list 1 2 3) (cons "9"  "6") (list 7 8 9))
	      (list (list 9 8 7) (cons "6"  "4") (list 1 5 9))
	      (list (list 7 5 2) (cons "7"  "1") (list 3 5 9))
	      (list (list 7 5 2) (cons "8"  "1") (list 3 7 9))
	)
)


(setq q
       (vl-sort
	 q
	 (function
	   (lambda (e1 e2) (< (nth 1 (nth 1 e1)) (nth 1 (nth 1 e2))))
	 )
       )
)

Результат: ; ошибка. неверный список: "4"

#########################################

(setq q	(list 
(list (list 1 2 3) (list "9" "6") (list 7 8 9))
	      (list (list 9 8 7) (list "6"  "4") (list 1 5 9))
	      (list (list 7 5 2) (list "7"  "1") (list 3 5 9))
	      (list (list 7 5 2) (list "8"  "4") (list 3 7 9))
	)
)


(setq q
       (vl-sort
	 q
	 (function
	   (lambda (e1 e2) (< (nth 1 (nth 1 e1)) (nth 1 (nth 1 e2))))
	 )
       )
)
Результат:
(((1 2 3) ("9" "6") (7 8 9)) ((9 8 7) ("6" "4") (1 5 9)) ((7 5 2) ("7" "1") (3 5 9)) ((7 5 2) ("8" "4") (3 7 9))) 
(((7 5 2) ("7" "1") (3 5 9)) ((9 8 7) ("6" "4") (1 5 9)) ((7 5 2) ("8" "4") (3 7 9)) ((1 2 3) ("9" "6") (7 8 9))) 
_$ 
сортировка прошла успешна!!! Почему списки сортирует нормально , а точечные пары не хочет?

Последний раз редактировалось Кулик Алексей aka kpblc, 12.07.2011 в 01:58.
Просмотров: 3044
 
Непрочитано 12.07.2011, 02:06
#2
Кулик Алексей aka kpblc
Moderator

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


Так?
Код:
[Выделить все]
 (defun test (/ q)
  (setq q (list
            (list (list 1 2 3) (cons "9" "6") (list 7 8 9))
            (list (list 9 8 7) (cons "6" "4") (list 1 5 9))
            (list (list 7 5 2) (cons "7" "1") (list 3 5 9))
            (list (list 7 5 2) (cons "8" "1") (list 3 7 9))
            (list (list 7 5 2) (list "8" "1") (list 3 7 9))
            ) ;_ end of list
        q
          (vl-sort
            q
            (function
              (lambda (e1 e2)
                (<
                  (if (listp (cdadr e1))
                    (cadadr e1)
                    (cdadr e1)
                    ) ;_ end of if
                  (if (listp (cdadr e2))
                    (cadadr e2)
                    (cdadr e2)
                    ) ;_ end of if
                  ) ;_ end of <
                ) ;_ end of lambda
              ) ;_ end of function
            ) ;_ end of vl-sort
        ) ;_ end of setq
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Помогите найти ошибку в коде



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти литературу по теме "преднапряжение изгибаемых и сжато-изгибаемых элементов с натяжением арматуры на бетон! S.Gerrard Поиск литературы, чертежей, моделей и прочих материалов 1 13.08.2013 14:56
Пространственный расчет. Помогите найти ошибку в схеме.SCAD 11.1 SMI Расчетные программы 7 28.09.2010 14:05
СНиП 11-10-75. Технология укладки асфальтовой смеси. Помогите найти! Maxim-t Поиск литературы, чертежей, моделей и прочих материалов 5 23.09.2010 00:11
Помогите найти ошибку Scad Toxel SCAD 12 14.04.2010 15:30
Помогите найти чертежи православных храмов leonbka Поиск литературы, чертежей, моделей и прочих материалов 5 12.03.2010 11:31