Clojure ближе к Схеме или языку Common LISP с точки зрения новичка? [закрытый]

Следующее зарегистрирует предупреждение консоли:

// Warning Duplicate IDs
$('[id]').each(function(){
  var ids = $('[id="'+this.id+'"]');
  if(ids.length>1 && ids[0]==this)
    console.warn('Multiple IDs #'+this.id);
});
27
задан uzo 11 September 2009 в 20:00
поделиться

4 ответа

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

Clojure отдаленно похож на Scheme в том, что это в основном функциональный язык и Lisp1 . Clojure также заимствует такие вещи из Common Lisp, как мультиметоды и макросы, и люди всегда переносят классные вещи Common Lisp на Clojure в виде библиотек. Создатель Clojure сам был хакером Common Lisp до написания Clojure. Clojure заимствует много терминологии и соглашений как из Scheme, так и из CL (но также имеет свои особенности во многих областях).

В настоящее время по Clojure не так много литературы, поскольку это такой новый язык (есть только пока одна книга Clojure ). Но есть множество хороших книг, ориентированных на схемы, например, SICP и Маленький интриган / Опытный интриган . Есть также хорошие книги по CL, такие как PCL и многие другие.

Lisps также имеет долгую историю, и вам будет полезно понять ее историю, увидеть, где и почему Clojure от нее отклоняется. как бы то ни было.

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

чтобы увидеть, где и почему Clojure отклоняется от него, как минимум

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

чтобы увидеть, где и почему Clojure отклоняется от него, как минимум

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

41
ответ дан 28 November 2019 в 04:38
поделиться

Для ваших целей, я думаю, вы можете просто начать изучать Clojure. Различия между Lisp и Scheme (и самим Clojure в этом отношении) не должны вызывать беспокойства, особенно если вы только начинаете учиться.

16
ответ дан 28 November 2019 в 04:38
поделиться

Это зависит от того, хотите ли вы сосредоточиться на обучении или игре. Если вы действительно хотите изучать Lisp, Scheme - хорошее место для начала. Если вы предпочитаете играть, пока изучаете, Clojure вам больше подойдет.

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

3
ответ дан 28 November 2019 в 04:38
поделиться

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

Я использовал "Teach" Дораи Ситарам Yourself Scheme in Fixnum Days », чтобы изучить Scheme, и зашел довольно далеко, хотя я никогда не обнаруживал, что хочу использовать Scheme в реальных проектах.

Clojure, потому что он якобы дает хороший, чистый доступ к огромной вселенной J2SE / J2EE библиотек, с другой стороны, побуждает меня переучивать этот диалект Лиспа, потому что он, наконец, может иметь практическое применение.

Что касается того, с чего начать, я бы сказал, что Scheme проще и поэтому может быть более подходящим для начала. С другой стороны, если у вас есть хорошие знания Java и Python, вы можете не возражать сразу же погрузиться в Clojure, потому что, в отличие от Scheme, он содержит элементы этих двух других языков (например, структуры данных, напоминающие учебники, ориентированные на Python и JVM / Java API), и знакомый ландшафт может помочь.

Так как я пришел из всех трех (Java, Python, Scheme), я нахожу Я имею хорошее положение, чтобы оценить то, что Clojure представляет собой отличное от Scheme. Я не опытный программист, но я бы сказал, что если вы сразу начнете с Clojure, вы все равно получите общий опыт работы с Lisp, поэтому вы определенно не упустите его, отказавшись от Scheme.

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

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

6
ответ дан 28 November 2019 в 04:38
поделиться