Узнайте, как разрабатывать и внедрять большие и сложные приложения с использованием языков Lisp

Вместо традиционных учебных пособий и книг, которые в основном объясняют синтаксис, структуры данных, функции, функции высокого порядка, макросы и т.д., а вместо традиционных проектов, подобных Эйлеру, являются хорошими всеобъемлющими ресурсами, чтобы научиться проектировать большие приложения в языках Lisp, охватывающие клиентскую сторону, а также дизайн и реализацию на стороне сервера?

Есть ли какие-нибудь руководства, которые объясняют с шага 1 -го шага 42, как постепенно внедрять интересное приложение?

Ответ 1

Вам может понравиться книга Clojure в действии. Он начинается с введения в Clojure, продолжает обсуждать варианты использования, где Clojure сияет в "реальном мире", таком как управление государством, concurrency, генерация кода и Java-interop, а затем книга проходит вас разработка нетривиального масштабируемого веб-приложения, которое использует модульное тестирование, пользовательские DSL, Hadoop, HBase и RabbitMQ.

Ответ 2

Лучшая книга IMHO, чтобы действительно получить Scheme Структура и интерпретация компьютерных программ (SICP).

В главах вы будете внедрять постепенно более сложные системы - числовую башню, язык манипулирования изображениями, потоковый процессор, параллельное программирование... до тех пор, пока, наконец, в последних двух главах вы в конечном итоге не будете писать несколько интерпретаторы для разных языков (сама схема, язык логики...), а также виртуальная машина и компилятор для Схемы.

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

Извините, в книге нет клиент-серверных приложений, но разработанные системы оставят вас готовыми к решению довольно сложных задач программирования на Схеме.

Ответ 3

См. Практическое общее Lisp. Кроме того, я думаю, что некоторые из уроков Racket довольно хороши: например, создание веб-приложения. Тем не менее, ни один учебник или книга не будет охватывать пример, который является полнофункциональным приложением, которое вы могли бы развернуть.

Ответ 5

Лично я нашел эту книгу весьма полезной. Он часто использует AI-ориентированный подход (как и следовало ожидать, учитывая название), но также охватывает более широкие темы (особенно PL-материалы [специально составители и интерпретаторы]), и он предлагает глубокое понимание общего lisp. В качестве альтернативы мне также нравится Graham В Lisp для "esoteric" lispiness (расширенные макросы, некоторые дополнительные исследования материалов PL-реализации). И да, вы не ошибетесь в SICP. Счастливая охота.