Примеры превосходного общего кода Lisp?

Я достаточно усвоил Common Lisp, чтобы запутать свой способ написания приложения. Я прочитал Практикующий Сейбел. Lisp

Какие библиотеки или программы следует читать, чтобы понять идиомы, Дао, Common Lisp?

Ответ 1

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

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

Ответ 5

LISP (Lisp In Small Pieces) - аккуратная книга; показывает клоссету (небольшая система акутов) и некоторые компиляторы. Без сомнения, книга норвигов удивительна.

Мне нравится на самом деле "сборка проблемных вещей", но код немного хвостик. я не используется для привязки переменных с динамической областью в списке параметров. Но это принесло много удовольствия усовершенствования, пытающиеся "предварительно скомпилировать" сеть дискриминации. Эта книга дает другое подходит к некоторым норвежским кодам; Я все еще думаю, что код Норвига является гораздо более "аккуратным и чистым" кодом (легче читать и понимать, и все же творческий).

"Построение решателей проблем" должно появиться с предупреждающей табличкой типа "вам понадобятся некоторые аспирен (sp). Похоже, что молния ударила меня в голову, когда я наконец "понимали" зависимость от rms и sussmans, направленную на обратное отслеживание. Компиляция pdis был также блестящим. Отличный материал. Мне просто жаль, что я не мог вспомнить все это...

Ответ 6

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

Ответ 7

Единственное, что я хотел бы предложить, это программировать. Это то, что я сделал.

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

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

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

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