Следующее зарегистрирует предупреждение консоли:
// Warning Duplicate IDs
$('[id]').each(function(){
var ids = $('[id="'+this.id+'"]');
if(ids.length>1 && ids[0]==this)
console.warn('Multiple IDs #'+this.id);
});
Вам было бы полезно изучить все три, хотя бы для того, чтобы вы могли выбрать, какой из них лучше всего подходит для ваших нужд. У всех трех есть свои сильные и слабые стороны.
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, пока не разберетесь с вещами, а затем на полную катушку сделайте то, к чему вы стремитесь.
Для ваших целей, я думаю, вы можете просто начать изучать Clojure. Различия между Lisp и Scheme (и самим Clojure в этом отношении) не должны вызывать беспокойства, особенно если вы только начинаете учиться.
Это зависит от того, хотите ли вы сосредоточиться на обучении или игре. Если вы действительно хотите изучать Lisp, Scheme - хорошее место для начала. Если вы предпочитаете играть, пока изучаете, Clojure вам больше подойдет.
В конце концов, я думаю, что Clojure может стать лучшим языком для изучения. Его поддержка параллелизма действительно открывает глаза. Некоторые языки позволяют новичку так просто писать параллельные программы.
Мой первый опыт изучения 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.