Clojure для [закрытого] неграмотного шепелявости

32
задан dbyrne 28 May 2010 в 23:14
поделиться

7 ответов

Мое первое знакомство с Лиспом было: Парадигмы программирования искусственного интеллекта Питера Норвига. Это очень читабельное и мягкое введение во многие особенности Common Lisp и концепции функционального программирования.

Начать непосредственно с некоторых книг по Clojure может быть предпочтительнее для вас, потому что между Common Lisp и Clojure есть несколько различий, которые могут запутать вас, если вы пытаетесь изучать оба языка одновременно.

В то же время постарайтесь получить практический опыт работы с Clojure REPL, выполняя некоторые упражнения вроде Project Euler, которые вы затем сможете сравнить с другими решениями на Clojure и императивном Java.

Кроме того, если у вас есть вопросы по программированию на Clojure и идиоматическому стилю, не стесняйтесь обсуждать свой код с другими Clojurians. Для этого есть несколько вариантов, например: Clojure в Google Groups, канал #clojure IRC на Freenode, Twitter по хэштегу #clojure, и, конечно, здесь, на Stackoverflow!

14
ответ дан 27 November 2019 в 20:41
поделиться

Для начинающего новичка, ​​Как разрабатывать программы заставит вас думать как лиспер. Если вы теряете терпение, идите быстрее :-) Еще одна хорошая книга - это On Lisp Пола Грэма, которая в качестве бонуса теперь доступна бесплатно в Интернете.

Меня не интересует Структура и интерпретация компьютерных программ ; если вы уже знаете Lisp или Scheme, это отличный интеллектуальный tour de force и очень удовлетворяющий - но я и мои студенты не нашли хорошую книгу, из которой можно было бы учиться. Little Schemer содержит много полезной информации, если вы можете переварить его диалектическую организацию и стиль милого пирога. Я не могу.

3
ответ дан 27 November 2019 в 20:41
поделиться

Я бы рекомендовал приобрести MEAP-версию "Радости Clojure". У меня она есть, и сейчас MEAP предлагает в общей сложности 12 глав. Пока что это лучшая книга по языку программирования, которую я когда-либо читал. Этих 12 глав достаточно, чтобы начать работу с Clojure, вплоть до некоторых продвинутых тем. Текущий MEAP (который довольно часто обновляется новыми главами) в сочетании с ociweb Clojure tutorial, stackoverflow.com и IRC-каналом #clojure на freenode, я думаю, вы справитесь.

Хотя я согласен с тем, что Programming Clojure - это отличное введение в Clojure, и делает очень хорошую работу, мы не можем отрицать тот факт, что с каждой неделей он все больше и больше устаревает. Вы должны помнить, что Programming Clojure был написан для Clojure 1.0. Сейчас мы стремительно приближаемся к выходу Clojure 1.2. Например, с включением defrecord, структуры станут устаревшими.

5
ответ дан 27 November 2019 в 20:41
поделиться

Если вы ищете введение в «лиспийское мышление», я бы порекомендовал Практический Common Lisp . Это хорошее чтение, и ИМХО идеально подходит для опытных программистов, не знающих шепелявости.

Обратной стороной является то, что он нацелен на Common Lisp, а не на Clojure; Основная причина в том, что подход Clojure гораздо более функциональный. Возможно, вам также понадобится специальная книга для Clojure.

0
ответ дан 27 November 2019 в 20:41
поделиться

Все ответы на данный момент замечательные. Я бы добавил:

  • Purely Functional Retrogames - это отличная серия о том, как разрабатывать старые школьные видеоигры функционально, без побочных эффектов. Если вы пройдете через это и поймете, как написать Pac-Man без побочных эффектов, то вы пройдете долгий путь к формированию мышления, необходимого для функционального решения многих/большинства других проблем.
  • Halloway's Programming Clojure - лучшее общее введение в Clojure, и дает некоторое представление о том, как думать о проблемах функционально, а не объектно-ориентированно, особенно на примере игры в змейку.
  • Seibel's Practical Common Lisp - отличное практическое руководство по функциональному решению реальных проблем, таких как создание базы данных. Хотя он написан для CL, а не для Clojure, который позволяет изменять данные, концепции переносятся без особых изменений, а полный текст доступен бесплатно на сайте автора. Стоит хотя бы взглянуть.
3
ответ дан 27 November 2019 в 20:41
поделиться

Мне очень нравится серия видео Брайана Твилла о Clojure на YouTube как безболезненное введение в некоторые идеи Clojure. Они не предполагают больших знаний Лиспа или языков функционального программирования.

Что касается книг, я согласен с Исааком в том, что Программирование Clojure - отличный ресурс. Вы также можете рассмотреть несколько готовящихся к выпуску книг по Clojure:

Радость Clojure

Clojure в действии

Обе книги имеют ранний доступ онлайн, если вы купите их сейчас. Также я думаю, что у обоих есть скидки - попробуйте заглянуть на clojure.org.

Книги по Lisp, упомянутые Питером и Норманом, вероятно, являются хорошим выбором (мне нравится SICP, но я не читал другие). Но различия в синтаксисе Clojure могут немного расстроить, если вы только начинаете. По этой причине я рекомендую вначале начать с книг, посвященных Clojure.

(Отредактировано для исправления ссылки.)

4
ответ дан 27 November 2019 в 20:41
поделиться

Переходя прямо к Clojure из ООП, я бы рекомендовал только превосходный Programming Clojure Стюарта Хэллоуэя.

Мне он нравится, и он отлично справляется с охраной большого количества Clojure и изрядной долей функционального программирования в процессе.

Little Schemer и SICP великолепны, но они не так актуальны для Clojure, если это то, чему вы хотите научиться.

8
ответ дан 27 November 2019 в 20:41
поделиться