Примеры превосходного кода языка Common LISP?

Я изучил достаточно языка Common LISP, чтобы смочь запутать мой путь посредством записи приложения. Я считал Практический язык Common LISP Seibel

Какие библиотеки или программы я должен читать для понимания идиом, дао, языка Common LISP?

60
задан Frank Shearar 6 April 2010 в 14:30
поделиться

6 ответов

CL-PPCRE часто приводится в качестве хорошего примера по уважительной причине. На самом деле, вероятно, любая из библиотек Эди Вейца будет полезна для чтения, но CL-PPCRE особенно умен, и это полезная и впечатляющая библиотека. Кроме того, многие реализации CL написаны в основном на CL. Может быть довольно продуктивно выбрать какую-то часть CL, которая обычно реализуется в CL, и сравнить, как с ней справляются разные реализации. В частности, одними из лучших примеров больших полезных макросистем являются реализации вещей в стандарте. Loop - интересное чтение, или, если вы действительно амбициозны, вы можете сравнить несколько реализаций CLOS.

Если есть какая-то область вычислений, которая вас особенно интересует, возможно, стоит упомянуть об этом, чтобы люди могли составить для этого рекомендации.

37
ответ дан 24 November 2019 в 17:50
поделиться

Остальные рекомендации (PAIP и CL-PPCRE) превосходны. Я также предлагаю ознакомиться с кодом Александрия , а также взглянуть на GBBopen .

11
ответ дан 24 November 2019 в 17:50
поделиться

Это другая книга, так что, возможно, это не совсем то, что вы ищете, но Питер Норвиг Парадигмы в программировании искусственного интеллекта содержит множество хорошо написанных небольших программ на Common Lisp. Это не совсем естественный код, особенно в первых нескольких главах, потому что, как и код в Practical Common Lisp , он фокусируется на обучении программированию на CL, но его все же стоит прочитать. Он также содержит несколько отличных примеров того, как вы можете создавать другие языки на основе Common Lisp, и дает несколько ценных советов о том, как улучшить производительность программ CL.

28
ответ дан 24 November 2019 в 17:50
поделиться

Мне нравится код SBCL.

2
ответ дан 24 November 2019 в 17:50
поделиться

Единственное, что я предлагаю, - это программировать. Я так и сделал.

Я сделал две вещи. Один я решил проблему, с которой я был знаком, фреймворк модульного тестирования и расширил его, включив в него наборы тестов. Чтобы получить представление о написании макросов.

Второе, что я сделал, - это поигрался с базовыми объектами в CL. Макросы, замыкания и стиль.

Также не забывайте получать отзывы от Lispers о вашем коде.

(defun ugly-lisp-code? () ())

2
ответ дан 24 November 2019 в 17:50
поделиться

Искусство протокола метаобъектов - это книга с самым красивым кодом из когда-либо написанных.

8
ответ дан 24 November 2019 в 17:50
поделиться