|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
LISP. Как объявить класс со своими методами и свойствами?
Томск
Регистрация: 13.07.2011
Сообщений: 81
|
||
Просмотров: 7800
|
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Цитата:
А вообще "классы" и прочее связанное с объектно-ориентированным программированием чисто функциональному языку и не нужны. На мой взгляд. Просто лишняя трата ресурсов. Наслушавшись "доцентов с кандидатами" слишком многие непременно хотят "объекты", там, где можно обойтись простыми средствами (и не только в LISP). Горе от ума, называется. Хотя, если "очень хочется, то можно". Надо "только" написать свои расширения. Например, функции defclass, make-instance и т.п. Но в любом случае "функции класса", т.е. реализацию методов и установку свойств надо самому писать. Если какая-то функция не определена, то в любом диалекте будет сообщение наподобие "no function definition: BAR". Кто эту функцию будет описывать, И.Ф. Крузенштерн, что ли? А сообщение именно об ней, потому что её вызов первым встретился. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
полностью поддерживаю - но есть одно но - в автолиспе нету замыканий - и как следствие нельзя реализовать структуры по логике схожие с объектами (при желании конечно можно - парсингом списка symbol'ов - но сильно геморно). Хотя конечно классы в лиспе (функциональных языках) могут понадобятся либо для совместимости с классо-ориентированными языками, либо от незнания лиспа.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
специалист по околачиванию грушевых деревьев Регистрация: 14.09.2004
Pietari, Venäjä
Сообщений: 811
|
Цитата:
|
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
Очень даже нужны. И очень даже пользуются. Но надо с умом, на любом языке.
А в AutoLISP - действительно "нафига". Хотя и здесь мы же пользуемся объектной моделью и, соответственно, классами. Только в виде vla-функций, которые где-то внутри потрохов AutoCAD обращаются к свойствам и методам. |
|||
![]() |
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
|
|||
![]() |
|
||||
Регистрация: 13.07.2011
Томск
Сообщений: 81
|
Это понятно, но вот в чем проблема (особенно для человека который всегда программировал с использованием классов) у меня есть имя будущего списка в переменной A
Код:
А имена берутся из БД по запросу и вытягиваются из XML, поэтому даже их количество неизвестно... Известно только что дублирования нет... Следовательно конструкция Код:
|
|||
![]() |
|
||||
Регистрация: 11.03.2009
Тюмень
Сообщений: 109
![]() |
Не вполне понятен смысл вопроса. Кому и для чего узнать?
возможно: Код:
Последний раз редактировалось Capiton, 20.07.2011 в 09:21. |
|||
![]() |
|
||||
Регистрация: 13.07.2011
Томск
Сообщений: 81
|
Суть такая:
читается XML где указаны типы объектов и их координаты. Средствами лиспа делаем примитивы в автокаде... если происходит изменение одного из примитивов (перемещение) то лисп должен высылать сообщение на сервер, что внесены коррективы. Проблема в том, что я работал раньше с ООП и лисп для меня несколько непонятен. Я бы просто сделал на каждый примитив элемент собственного класса и отслеживал бы его свойства и методы. А как это реализовать функционально пока не знаю... |
|||
![]() |
|
||||
Регистрация: 11.03.2009
Тюмень
Сообщений: 109
![]() |
Не.. Это Вам не ко мне, а к гуру местным. С ООП у меня не очень, а с XML вообще никак. По тем крохам опыта, что у меня есть могу сказать, что для отслеживания событий служат реакторы, но работают они, в общем случае, коряво(хотя только для перемещения может и сгодятся). А еще создаётся впечатление, что к примитивам автокада Вы относите не только те объекты, которые действительно являются примитивами(зачем отслеживать перемещения примитивов, например отрезков, я себе не представляю). Возможно среда ObjectARX Вам лучше подойдёт, чем лисп. Там как раз полное ООП
![]() P.S. Собираюсь начать разбираться с XML. Буду признателен, если вышлите какие-нибудь материалы по языку, (на правах "спасибо" или просто так). Адрес capiton@yandex.ru |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,404
|
По xml или по работе с xml из-под Lisp'a? Если второе, то, например, http://kpblc.blogspot.com/2009/11/lisp-xml.html и http://kpblc.blogspot.com/2009/11/lisp-xml-2.html
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 13.07.2011
Томск
Сообщений: 81
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Цитата:
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Дробный текст методами LISP | Nitrogenium | LISP | 1 | 08.02.2011 19:50 |
{Конкурс} Lisp. Задачки для студентов | gomer | LISP | 10 | 05.01.2011 16:33 |
ГОСТ Р 53231-2008 | UnyqUm | Поиск литературы, чертежей, моделей и прочих материалов | 5 | 15.09.2009 14:41 |
Хочу поделиться своими программками в LISP с желающими | Olegic | LISP | 12 | 30.10.2004 22:52 |