Clojureは初心者の観点からSchemeやCommon Lispに近いですか? [閉まっている]
質問
Clojureを学習したい場合、SchemeまたはCommon Lispを学習することから始めますか?
またはClojureはこれらの両方とは十分に異なっているので、Clojureを独力で習得しなければなりませんか?
解決
3つすべてを学習することは、あなたのニーズに最適なものを選択できる場合にのみ役立ちます。 3つすべてに独自の長所と短所があります。
Clojureは、ほとんど機能的な言語であり、 Lisp1 。 Clojureは、マルチメソッドやマクロなど、Common Lispからも物を借りており、人々は常にCommon Common LispのクールなものをライブラリとしてClojureに移植しています。 Clojureを作成する前は、Clojureの作成者は彼自身Common Lispハッカーでした。 Clojureは、SchemeとCLの両方から多くの用語と規則を借用しています(多くの分野で独自のフレーバーも持っています)。
現在、Clojureに関する文献は多くありません。新しい言語です(これまでにClojureの本1冊)。しかし、 SICP や The Little Schemer / The Seasoned Schemer 。 PCL などの優れたCLブックもあります。
Lispにも多くの歴史があり、歴史を理解し、Clojureがそれ以外の場合はどこから、なぜそれから逸脱するかを確認することは有益です。
Schemeは3つの言語の中で最も単純であり、したがって最も簡単に学習できるため、Schemeから始めることをお勧めします。その後、物事を理解できるまでCLとClojureに手を出してから、2つのうちどちらに引き寄せられた方でもフルスチームに進みます。
他のヒント
あなたの目的のために、Clojureの学習を開始しても安全だと思います。 LispとSchemeの違い(およびその点でClojure自体)は、特に学習を始めたばかりの場合は特に心配する必要はありません。
最初のLisp学習経験はSchemeで、Common Lispに触れたことは一度もない(複雑すぎると感じた)ので、Clojureから始めています。
Dorai Sitaramの「Fixnum Daysで自分を教えるスキーム」を使用しました。 Schemeを学び、かなり遠くまで行きましたが、実際のプロジェクトでSchemeを使いたくはありませんでした。
Clojureは、J2SE / J2EEライブラリの巨大な宇宙へのすてきな、きれいなアクセスを提供すると言われていますが、一方で、このLisp方言は最終的に実用的かもしれないので、私はこのLisp方言を再学習することを奨励します。
どちらから始めるかについては、Schemeの方が簡単であるため、最初から始める方が適切かもしれません。一方、JavaとPythonの十分な知識がある場合は、Schemeとは異なり、他の2つの言語の要素が含まれているため、Clojureに直接飛び込むことを気にしないかもしれません(たとえば、PythonおよびJVM / Java API中心のチュートリアルを連想させるデータ構造)おなじみの地形が役立つかもしれません。
私は3つすべて(Java、Python、Scheme)から来たので、ClojureがSchemeとは異なる表にもたらすものを理解するのに良い立場にいることに気づきました。私はSchemerの経験はありませんが、すぐにClojureから始めても、一般的なLispの経験を得ることができると思いますので、Schemeを忘れても間違いなく見逃せません。
学習とプレイのどちらに集中するかによって異なります。本当にLispを勉強したいのなら、Schemeを始めるのが良いでしょう。 Clojureを学習しているときにプレイしたい場合は、より適しています。
最終的には、Clojureがより良い学習言語になると思います。並行性のサポートは本当に目を見張るものです。初心者が並行プログラムを簡単に作成できる言語はほとんどありません。