Попытка научиться: переориентация объектов и общие функции в LISP! - PullRequest
6 голосов
/ 13 января 2009

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

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

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

TY

Ответы [ 5 ]

7 голосов
/ 13 января 2009

Если вы хотите получить книгу «Объектно-ориентированное программирование в ОБЩЕМ LISP» Соня Е. Кин, глава 11 («Разработка расширенной программы CLOS: потоки»), содержит нетривиальный пример с множественным наследованием около 40 страниц.

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

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

5 голосов
/ 13 января 2009

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

4 голосов
/ 13 января 2009

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

Еще одно место, на которое стоит обратить внимание: Успешный Лисп , главы 7 и 14, посвященные основам, а главы 31 и часть 3.10 посвящены пакетам и обработке больших проектов.

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

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

2 голосов
/ 03 марта 2009

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

0 голосов
/ 17 января 2009

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

С уважением Friedrich

...