Попытка научиться: переориентация объектов и общие функции в LISP!
Я читаю Практический общий Лисп в результате другого вопроса.
Я только что прочитал главы 16 и 17, где вы можете узнать, как LISP управляет объектами. Но после нескольких лет размышлений о том, как Java управляет объектами, я не могу понять, как реализовать большие архитектуры в LISP с использованием CLOS.
Поэтому я прошу вас, ребята, на 20-50 страниц читать о CLOS, примененных к более крупным архитектурам, чем простые примеры. Может быть, пару постов в блоге или даже опыт!
TY
5 ответов
Возможно, посмотрите на примеры приложений, которые рассматриваются в последующих главах. Вы увидите, что классы и объекты - это просто еще один инструмент в вашем боксе. Не поддавайтесь желанию программировать Java с использованием синтаксиса Lisp.
Еще одно место, на которое стоит обратить внимание - это " Успешный Лисп", главы 7 и 14, посвященные основам, а главы 31 и часть 3.10 посвящены пакетам и работе с большими проектами.
Какой-то гуру Лиспа (возможно, это был Пол Грэм, но я не уверен) однажды сказал, что ему еще не нужен CLOS.
редактировать: я думаю, что ваша путаница может возникнуть из-за того, что в Лиспе вы не используете систему классов для организации пространств имен. Это делается отдельно; эти двое не имеют ничего общего друг с другом.
Если вы хотите завести книгу "Соня Э. Кин" "Объектно-ориентированное программирование в COMMON LISP", глава 11 ("Разработка расширенной программы CLOS: потоки") содержит нетривиальный пример с множественным наследованием, охватывающим около 40 страниц.,
Восемь классов обсуждаются подробно (поток, входной поток, выходной поток, двунаправленный поток, символьный поток, байтовый поток, дисковый поток и ленточный поток). Конкретные классы, для которых пользователь должен будет создавать экземпляры, затем выводятся с использованием множественного наследования.
Это более существенно, чем пример банковского счета в Practical Common Lisp. Вы также можете найти остальную часть книги Кина полезной для более глубокого понимания CLOS: вся книга о CLOS.
Если вы действительно хотите понять CLOS, вы можете вернуться и прочитать "Искусство протокола мета-объектов", которое предоставляет основу и базовый код для Closette, подмножества версии CLOS.
Мы в Weblocks также интенсивно используем CLOS, так что вы можете немного поискать источник.
Более крупными приложениями CLOS являются: 1) CAPI от Lispworks 2) веб-сервер cl-http 3) очень большой пакет CLOS - CLIM 4) если вам нравится OpenGenera (это ОС Lisp, использующая Common Lisp и некоторый предшественник ZetaLisp 5), меньший пакет - http://www.cliki.net/mel-base
С уважением Фридрих