|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP. Функция /=
AutoCAD/Civil3D LISP/C#
Санкт-Петербург
Регистрация: 15.08.2008
Сообщений: 1,701
|
||
Просмотров: 3698
|
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Do$, по ходу так было всегда
__________________
cadtools |
|||
![]() |
|
||||
Тогда почему в примерах в этой статье четвертое сверху выражение возвращает T?
Новые наблюдения (просто менял местами аргументы): Код:
|
||||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Do$, прочитал справку по VisualLisp. Это не глюк, просто проверка идет по-парно, т. е. 1 агрумент со 2, 2 с 3 и т.д.
__________________
cadtools |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Для "разношерстных" (содержащие различные типы данных) списков.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Программист-энтузиаст Регистрация: 17.07.2009
Воронеж
Сообщений: 575
|
Цитата:
Код:
__________________
cadtools |
|||
![]() |
|
||||
Код и для такого списка выдаст nil: ((10 0) (10 20) (0 20) (40 50) (70 10)).
Я лично реальное применение функции /= вижу только в использовании с 2-мя аргументами, чтобы заменить две функции not и =. |
||||
![]() |
|
||||
Регистрация: 03.05.2009
Сообщений: 112
|
У Полещука эта функция описана некорректно.
На самом деле, если в списке аргументов нет двух одинаковых соседних элементов возвращается T, иначе - nil. В самых ранних версиях AutoLisp у функции "/=" было только 2 аргумента. В справке написано, что поведение этой функции в других диалектах Lisp вполне "традиционное" т.е. соответствует* комбинации функций Код:
Код:
*когда больше одного аргумента. **когда точки списка lst не имеют координаты z. |
|||
![]() |
|
||||
Регистрация: 03.05.2009
Сообщений: 112
|
|
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Li6-D, хороший пример использования
![]() Но учитывая, что , я не рискну использовать такие конструкции. Т.к. решит автодеск привести поведение этой функции в соответствие с другими диалектами и вылезет в самый неподходящий момент ошибка. |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DwgRuLispLib: Функция открытия диалога Open\Save As файла (файлов) | Supermax | Библиотека функций | 20 | 14.03.2018 10:05 |
LISP. Выравнивание текста по двум точкам. | Krieger | Готовые программы | 10 | 24.12.2011 16:02 |
Какая LISP функция проверяет чётность/нечётность числа? | Владимир Егорьев | LISP | 5 | 19.04.2011 21:11 |
{Конкурс} Lisp. Задачки для студентов | gomer | LISP | 10 | 05.01.2011 16:33 |
структурированный список | Holon | Программирование | 22 | 11.09.2007 14:09 |