Подтвердить что ты не робот

Обучение Clojure без знаний Java

Хорошо, поэтому я беспокоюсь о другом списке. Я получил себе копию бета-версии программы Clojure...

И одна вещь, которую я замечаю больше всего, это то, что она предположила, что я знаю... как и все основные классы Java.

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

Любое предложение о том, как узнать, что мне нужно от всего этого?

4b9b3361

Ответ 1

Моя основная рекомендация для вас, которую вы уже сделали, покупая Программу Clojure. Я избегал и ненавидел Java годами и годами, а (Программирование) Clojure реабилитировал его настолько, что язык меня сейчас волнует. Кто бы мог подумать, что классная обременительная система позволит вам интерактивно (map #(.getName %) (.getMethods (class "")))? Посмотрите "Работа с Java, 3.5 Добавление Ant Проекты и задачи в Lancet" для исследования в стиле, который я знаю из Ruby.

Если вы находитесь в Freenode # clojure, присоединитесь также к ## java. Получите Java документацию по API и сохраните ее. Найдите в Интернете ответ Java на то, что вы хотите сделать, и переведите его более или менее напрямую до Clojure.

EDIT: В clj:

user=> (use 'clojure.contrib.javadoc)
nil
user=> (keys (ns-publics 'clojure.contrib.javadoc))
(*remote-javadocs* javadoc find-javadoc-url add-remote-javadoc
*core-java-api* add-local-javadoc *local-javadocs*)
user=> (javadoc "this is a java.lang.String")
true  (browses to http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html)
user=> (javadoc java.net.ServerSocket)
true  (...)
user=>

Ответ 2

Умм, на самом деле, хотя Clojure был разработан с рассмотрением Java-разработчиков, он не был написан для Java-программистов.

Clojure предназначен для взаимодействия в среде Java.

Несмотря на это, это не то, для чего он был предназначен (по крайней мере, не в языковой части "среды Java" ). И "среда Java" подразумевает, что язык и JVM взаимосвязаны каким-то образом, что делает их одним. Они не. Conjure - это родной язык JVM (в отличие от Jython или JRuby), и он использует очень хорошо построенную виртуальную машину, чтобы жить внутри.

Как сказал Грег, Clojure построен для Java, и, если вы не хотите действительно попасть в операционную систему памяти Clojure, я бы сказал, чтобы проверить другой Lisp.

Нет, извините. Clojure не был создан для Java. Он был построен для JVM. Вы можете использовать библиотеки Java, если хотите, но это не требуется (хотя это полезно). И что касается совета по использованию другого Lisp, если вы не хотите изучать Java. Это смешно. Clojure не предназначен для Java; он должен быть 1-го класса Lisp. И один из них, кстати, означает усиление Lisp определенным образом, чтобы сделать его более современным и функциональным. Его способность хорошо работать с Java должна считаться бонусом, а не обязательством.

Как указывает Грег выше, такие языки, как Clojure и Groovy, нацелены на JVM по одной основной причине, так что разработчики Java могут иметь лучшее из обоих миров.

Также неправильно. По причинам, указанным выше. Они не были написаны для разработчиков Java. Извините, что здесь так грубо, но я не видел ни одного образованного сообщения в Clojure в этих ответах, и я только что узнал о Clojure сегодня! Это просто разочаровывает тот факт, что такой вредоносный совет так легко дается.

Я просто закончу цитатой Рика Хики (парень, который написал Clojure):

"Вы можете ненавидеть Java и как JVM".

Далее он говорит, что именно там он стоит.

Ответ 3

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

Ответ 4

Вы сможете получить то, что вам нужно, через Google и StackOverflow, но ожидайте посещения обоих, пока не получите хорошее представление о стандартных библиотеках Java.

Как сказал Грег, Clojure построен для Java, и, если вы не хотите действительно попасть в программную систему памяти транзакций Clojure, я бы сказал, чтобы проверить другой Lisp. Java, конечно, не требуется, но это огромная нога, чтобы не изучать стандартные библиотеки поверх стандартных библиотек Clojure.

Ответ 5

Вы можете узнать Clojure, не изучая Java, но всегда хорошо знать немного оснований. Вы можете использовать Clojurecademy для обучения Clojure, у которого есть интерактивная обучающая модель (Hands-On), например Codecademy.

Ответ 6

Как указывает Грег выше, такие языки, как Clojure и Groovy, нацелены на JVM по одной основной причине, так что разработчики Java могут иметь лучшее из обоих миров. Итак, если вы хотите узнать Lisp, Scheme или Common Lisp будет отличным началом!

Ответ 7

Если вас не интересуют все аспекты Java Clojure, возможно, вам лучше изучить другой диалект Lisp, например Common Lisp или Scheme. Clojure предназначен для взаимодействия в среде Java.