Вопрос

Я серьезно думаю о том, чтобы сделать Clojure на своем новом хакерском языке, так как я люблю LISP, но у меня есть проблемы с CL и схемой. Я никогда раньше не работал в среде Java, и мой опыт LISP ограничивается прохождением через «SICP» и «The Little Schemer».

Что мне нужно знать? Есть ли хорошие ресурсы на "The Clojure Way?" Какие -нибудь ресурсы в стиле Clojure? Я нашел превосходную страницу Марка Волкмана, но книги, через которые я просмотрел, кажутся немного запасными.

Кроме того, что мне нужно знать о Java? Я бы предпочел не изучать Java, чтобы просто изучить Clojure, но я думаю, что мне придется знать хотя бы немного. Кроме того, что такое рабочий процесс? Мой опыт ограничен динамическими языками, поэтому я понятия не имею, что я должен был сделать, чтобы распространить приложение без источника на JVM.

Я погуглил это, очевидно, но есть большое количество информации и не очень "Clojure, конкретных".

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

Это было полезно?

Решение

Вы не ошибетесь, наблюдая как многие из Клоджюр видео на Blip.tv Как вы можете справиться, особенно с самим Рич Хикки. Они действительно помогают привести домой концептуальные моменты и аспекты, уникальные для Clojure.

Если вы достаточно знакомы с концепциями LISP, вы можете изначально сосредоточиться на изучении того, как Clojure «карты» для лисп, с которыми вы играли. Смотрите видео Rich Hickey на «Clojure для программистов LISP».

Вам нужно иметь некоторое знакомство с Java, потому что Clojure не уклоняется от его использования. Это не каким-то образом не взволнован (насколько я могу судить) использовать Java, где это умно. Я бы по крайней мере просматривал API документы для java.lang а также java.io пакеты, потому что java.lang автоматически доступен в ваших программах Clojure и java.io используется часто.

С моим словарным словом в голове и основаниями на Java позади меня, я бы выбрал Небольшой проект для работы над. Анкет Держите документы API Clojure и Clojure-Contrib Handy (либо в Интернете, либо используйте команду (DOC) из реплики) и просмотрите множество, многих блогов Clojure. Два моих любимых http://nakkaya.com/ а также http://stuartsierra.com/. Анкет Если вы используете Diigo, целый ряд блогов был добавлен в закладки на Clojure Group.

ПРИМЕЧАНИЕ. Не зацикливайтесь в вашей среде разработчика. Есть множество вариантов, перечисленных на Начало работы с вики страница. Анкет Для изучения Clojure и ваших первых небольших проектов, я бы просто выбрал ваш простой текстовый редактор, выберите и использую основы Лейнинген Чтобы получить хорошую настройку каталога проектов со всеми вашими путями и зависимостями, затем используйте команду «Lein Repl», чтобы запустить реплику со всеми загруженными и доступными вашим зависимостями. Предполагая, что вы используете EMAC (на основе вашего предыдущего опыта LISP), вы можете describe-variable ваш inferior-lisp-program быть lein repl, и просто запустите EMACS с корня вашего примера проекта, чтобы все работало автоматически.

Есть книги Вы можете прочитать, в частности, радость клоджа, программирования Clojure и практического Clojure. Последние два более «практичны», чем первое, что является более «философскими» (извините за грубые обобщения). Практический Clojure актуально с Clojure 1.2, тогда как программирование Clojure немного старше.

Наконец, зайдите на канал #Clojure IRC и используйте группу Google Clojure, потому что есть куча умных, дружелюбных людей, которые любят помогать другим.

Другие советы

Просто быстрая перспектива от кого -то, кто приехал в Clojure с другого направления (Java -> Clojure)

  • Я на самом деле обнаружил, что яростные части Clojure легко выучить, когда я развел синтаксис и общие идиомы. Я ожидаю, что это будет еще проще для вас.
  • Вам действительно не нужно много знаний о Java, чтобы делать большинство вещей - вы можете делать практически все в Pure Clojure, если хотите.
  • Вероятно, только когда вы начнете желать использовать библиотеки Java, вам нужно будет погрузиться в Java Interop. К счастью, Interop очень проста - он более в стиле Lisp, чем в стиле Java, поэтому единственное, что вам нужно выяснить, это как понять интерфейсы Java и сделать соответствующий вызов со стороны Clojure.

Для моей среды я использую Затмение + Против часовой стрелки. Анкет Это работает исключительно хорошо, если вам нравятся IDES и/или думаете, что вы в конечном итоге захотите выполнить какую -то работу в Java. Это не требует дальнейших зависимостей, дает вам отличную отладку, имеет полную реплику (встроенная nrepl Я считаю), делает все управление файлами проекта (GIT, SVN и т. Д.) И автоматически обрабатывает такие вещи, как настройка Java ClassPath для вас (что может быть серьезным препятствием для новичков на Java!). Я бы порекомендовал проверить это, если вы думаете, что это может соответствовать вашему стилю, я также слышал хорошие вещи о Enclojure также.

Если вы не увлекаетесь IDES, то вы, вероятно, лучше всего с вашим любимым текстовым редактором и инструментами командной строки, как предлагает Semperos в его отличном ответе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top