Я изучил достаточно языка Common LISP, чтобы смочь запутать мой путь посредством записи приложения. Я считал Практический язык Common LISP Seibel
Какие библиотеки или программы я должен читать для понимания идиом, дао, языка Common LISP?
CL-PPCRE часто приводится в качестве хорошего примера по уважительной причине. На самом деле, вероятно, любая из библиотек Эди Вейца будет полезна для чтения, но CL-PPCRE особенно умен, и это полезная и впечатляющая библиотека. Кроме того, многие реализации CL написаны в основном на CL. Может быть довольно продуктивно выбрать какую-то часть CL, которая обычно реализуется в CL, и сравнить, как с ней справляются разные реализации. В частности, одними из лучших примеров больших полезных макросистем являются реализации вещей в стандарте. Loop - интересное чтение, или, если вы действительно амбициозны, вы можете сравнить несколько реализаций CLOS.
Если есть какая-то область вычислений, которая вас особенно интересует, возможно, стоит упомянуть об этом, чтобы люди могли составить для этого рекомендации.
Остальные рекомендации (PAIP и CL-PPCRE) превосходны. Я также предлагаю ознакомиться с кодом Александрия , а также взглянуть на GBBopen .
Это другая книга, так что, возможно, это не совсем то, что вы ищете, но Питер Норвиг Парадигмы в программировании искусственного интеллекта содержит множество хорошо написанных небольших программ на Common Lisp. Это не совсем естественный код, особенно в первых нескольких главах, потому что, как и код в Practical Common Lisp , он фокусируется на обучении программированию на CL, но его все же стоит прочитать. Он также содержит несколько отличных примеров того, как вы можете создавать другие языки на основе Common Lisp, и дает несколько ценных советов о том, как улучшить производительность программ CL.
Единственное, что я предлагаю, - это программировать. Я так и сделал.
Я сделал две вещи. Один я решил проблему, с которой я был знаком, фреймворк модульного тестирования и расширил его, включив в него наборы тестов. Чтобы получить представление о написании макросов.
Второе, что я сделал, - это поигрался с базовыми объектами в CL. Макросы, замыкания и стиль.
Также не забывайте получать отзывы от Lispers о вашем коде.
Искусство протокола метаобъектов - это книга с самым красивым кодом из когда-либо написанных.