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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Autolisp "defun" или что я делаю не так ?

Autolisp "defun" или что я делаю не так ?

Ответ
Поиск в этой теме
Непрочитано 28.04.2010, 11:47 #1
Autolisp "defun" или что я делаю не так ?
xsakabsx
 
Регистрация: 18.04.2010
Сообщений: 46

создаю функцию
Код:
[Выделить все]
(defun layerview (status layers)
(|начало функции|
(if (= status 1)(alert strcat("Заморозить" layers))())
(if (= status 2)(alert strcat("разморозит" layers))())
|конец функции|)
)
при вызове функции
Код:
[Выделить все]
(layerview(1 1))
пишет в ответ

Код:
[Выделить все]
неверная функция 1

еще очень сильно волнует как при вызове функции аргументы задавать переменными

книги про лисп уже все пролистал но ни как не могу понять (
Просмотров: 3435
 
Непрочитано 28.04.2010, 12:01
#2
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от xsakabsx Посмотреть сообщение
книги про лисп уже все пролистал но ни как не могу понять (
Нужно не листать, а внимательно читать.
1. это что такое: (|начало функции| и |конец функции|) ?
2. какие аргументы может принимать функция (strcat)? С каких пор ей можно передавать число?
3. Как передаются аргументы в lisp-функцию? Почему (layerview(1 1)) а не (layerview 1 1)?
В шести строках кода что ни строка - то бред...
Александр Ривилис вне форума  
 
Автор темы   Непрочитано 28.04.2010, 12:10
#3
xsakabsx


 
Регистрация: 18.04.2010
Сообщений: 46


Цитата:
Сообщение от Александр Ривилис Посмотреть сообщение
1. это что такое: (|начало функции| и |конец функции|) ?
Это есть внутренний коментарий у лиспа )
а с отсальным сейчас проверю )))
------------------------------------
и правда плохо читал еще раз огромное спасибо
xsakabsx вне форума  
 
Непрочитано 28.04.2010, 12:41
#4
Александр Ривилис

программист, рыцарь ObjectARX
 
Регистрация: 09.05.2005
Киев
Сообщений: 2,413
Отправить сообщение для Александр Ривилис с помощью Skype™


Цитата:
Сообщение от xsakabsx Посмотреть сообщение
Это есть внутренний коментарий у лиспа )
Внутренний комментарий - ;| комментарий |;
Почувствуй разницу!
Александр Ривилис вне форума  
 
Непрочитано 28.04.2010, 12:52
#5
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Offtop: Кстати, на обращении к функции многие поначалу спотыкаются (я в том числе ). Потому что в фортране, например, аргументы функции указываются в скобках. Вот и пишут многие (<имя> (<аргумент1> ...)) вместо (<имя> <аргумент1> ...)
Do$ вне форума  
 
Непрочитано 28.04.2010, 14:34
#6
Олег (jr.)

специалист по околачиванию грушевых деревьев
 
Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811


Цитата:
Сообщение от xsakabsx Посмотреть сообщение
при вызове функции

Код:
(layerview(1 1))
[code]

Посотри как лучше
Код:
[Выделить все]
(defun layerview (status layers)
(cond ( (= status 1)(alert (strcat "Заморозить " layers)))
( (= status 2)(alert (strcat "Разморозить " layers)))
(T nil))
)
Вызывай функцию так:
Код:
[Выделить все]
(layerview 1 (itoa 1))
~'J'~

Последний раз редактировалось Олег (jr.), 28.04.2010 в 14:41.
Олег (jr.) вне форума  
 
Непрочитано 28.04.2010, 14:38
#7
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Все равно не работает:
Код:
[Выделить все]
Команда: (layerview 1 1)
; ошибка: неверная функция: "Заморозить"
Profan вне форума  
 
Непрочитано 28.04.2010, 14:56
#8
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Цитата:
Сообщение от Profan Посмотреть сообщение
Все равно не работает:
Цитата:
Сообщение от Олег (jr.) Посмотреть сообщение
Вызывай функцию так:

Код:
(layerview 1 (itoa 1))
Работает.
Do$ вне форума  
 
Непрочитано 28.04.2010, 15:08
#9
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Я загружал код из сообщения #1.
А Олег (jr.) только потом подправил свое сообщение.
Profan вне форума  
 
Непрочитано 28.04.2010, 16:04
#10
Do$

AutoCAD/Civil3D LISP/C#
 
Регистрация: 15.08.2008
Санкт-Петербург
Сообщений: 1,701
Отправить сообщение для Do$ с помощью Skype™


Неаккуратненько получилось
А что его загружать то? Там и так видно, что все плохо
Do$ вне форума  
 
Непрочитано 28.04.2010, 18:24
#11
Profan


 
Регистрация: 25.12.2005
Москва
Сообщений: 13,627


Нам видно, а вот автору темы не видно было.
Profan вне форума  
 
Автор темы   Непрочитано 11.05.2010, 13:12
#12
xsakabsx


 
Регистрация: 18.04.2010
Сообщений: 46


проблему всю решил )))))))
xsakabsx вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Autolisp "defun" или что я делаю не так ?



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Саяно-Шушенская ГЭС casemsot Обрушения, аварии, инциденты 1580 03.10.2013 12:49
Юмор 2009 DEM Разное 1736 01.01.2010 22:51
ГОСТ Р 53231-2008 UnyqUm Поиск литературы, чертежей, моделей и прочих материалов 5 15.09.2009 14:41
на злобу дня !! zaza-noza Разное 63 22.05.2009 15:10
Стройки встали что делать проектировщикам dextron3 Организация проектирования и оформление документации 1033 07.12.2008 12:09