Пытаюсь изучить: переориентацию объектов и общие функции в LISP!

Я читаю практический общий Lisp в результате другого вопроса.

Я только что прочитал главы 16 и 17, где вы можете узнать, как LISP управляет объектами. Но после пары лет размышлений о том, как Java управляет объектами, я, кажется, действительно не могу понять, как можно реализовать большие архитектуры в LISP с помощью CLOS.

Итак, я прошу вас, ребята, прочитать около 20-50 страниц о применении CLOS к более крупным архитектурам, чем простые примеры. Может быть, пара сообщений в блоге или даже впечатлений!

TY


person DFectuoso    schedule 12.01.2009    source источник
comment
Вы можете привести пример архитектуры? CLOS - это в значительной степени надмножество объектной системы Java, поэтому я не уверен, какие архитектуры вы имеете в виду ...   -  person Jules    schedule 13.01.2009


Ответы (5)


Возможно, взгляните на примеры приложений, которые рассматриваются в следующих главах. Вы увидите, что классы и объекты - это просто еще один инструмент в вашем ящике. Не поддавайтесь желанию программировать Java с синтаксисом Lisp.

Еще одно место, на которое стоит обратить внимание, - это Successful Lisp, главы 7 и 14 для основы, а главы 31 и часть 3.10 посвящены пакетам и работе с большими проектами.

Какой-то гуру Lisp (это мог быть Пол Грэм, но я не уверен) однажды сказал, что CLOS ему еще не нужен.

edit: я думаю, что ваше замешательство может быть вызвано тем фактом, что в Lisp вы не используете систему классов для организации пространств имен. Это делается отдельно; на самом деле эти двое не имеют ничего общего друг с другом.

person Svante    schedule 13.01.2009
comment
В случае с pg это потому, что он предпочел бы вместо этого написать свою сломанную версию. Практически все в мире Лиспа является объектом, и CLOS - хороший инструмент, который нужно знать. - person jrockway; 13.01.2009
comment
Фактически, гиперпредставление определяет объект как любые данные Лиспа: lispworks.com/ документация / lw50 / CLHS / Body / 26_glo_o.htm - person Ken; 22.03.2010

Если вам нужна книга Сони Э. Кин "Объектно-ориентированное программирование в COMMON LISP", глава 11 (Разработка расширенной программы CLOS: потоки) содержит нетривиальный пример с множественным наследованием, охватывающий около 40 страниц. .

Подробно обсуждаются восемь классов (поток, поток ввода, поток вывода, двунаправленный поток, поток символов, поток байтов, поток диска и поток ленты). Конкретные классы, экземпляры которых ожидается от пользователя, затем производятся с использованием множественного наследования.

Он более существенен, чем пример банковского счета в Практическом Common Lisp. Вы также можете найти остальную часть книги Кина полезной для более глубокого понимания CLOS: вся книга посвящена CLOS.

person Nelson    schedule 13.01.2009
comment
Книга Кина дает именно то, что ищет этот ОП. - person Technical Bard; 13.01.2009
comment
Соня (была, ушла на пенсию) одним из лучших технических писателей всех времен. Ее книга очень ясна и была очень тщательно проверена создателями CLOS. - person Dan Weinreb; 28.05.2011

Если вы действительно хотите понять CLOS, вы можете вернуться и прочитать Искусство протокола метаобъектов, которое обеспечивает основу и базовый код для Closette, подмножества версии CLOS.

person Technical Bard    schedule 13.01.2009
comment
Эта книга фантастическая, но она больше о теории и красоте CLOS, чем о повседневной практической разработке. Я думаю, что последнее - это то, о чем здесь просят. - person Dan Weinreb; 28.05.2011

Мы в Weblocks также активно используем CLOS, так что вы можете немного просмотреть источник.

person Leslie P. Polzer    schedule 03.03.2009

Более крупные приложения CLOS: 1) CAPI от Lispworks 2) веб-сервер cl-http 3) очень большой пакет CLOS - это CLIM 4) если вам нравится OpenGenera (это операционная система Lisp, использующая Common Lisp и некоторый предшественник ZetaLisp 5), меньший пакет - это http://www.cliki.net/mel-base

С уважением, Фридрих

person Friedrich    schedule 17.01.2009