Примеры отличного кода Common Lisp?



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



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

367   7  

7 ответов:

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

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

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

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

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

LISP (Lisp в небольших частях) опрятная книга; показывает clossette (малую систему obect) и некоторые вещи компилятора. Без сомнения, книга Норвига потрясающая.

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

"Building problem solvers" должен поставляться с предупреждающей надписью, например: "вам понадобятся некоторые аспирен (СП). Мне показалось, что молния ударила мне в голову, когда я наконец-то "понятая" зависимость rms и sussmans направлена назад. Составление ИСПДн было также блестяще. Отличный материал. Я просто хотел бы вспомнить все это ...

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

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

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

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

также не забывайте о получении обратной связи от шепота о вашем код.

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

Comments

    Ничего не найдено.