Обучение Clojure от LISP [закрыто
-
16-10-2019 - |
Вопрос
Я серьезно думаю о том, чтобы сделать 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 в его отличном ответе.