3

私はLispが大好きですが、CLとSchemeにいくつか問題があるので、Clojureを新しいハッキング言語にすることを真剣に考えています。私はこれまでJava環境で作業したことがなく、Lispの経験は「SICP」と「TheLittleSchemer」での作業に限定されています。

何を知る必要がありますか?「TheClojureway」に関する優れたリソースはありますか?Clojureスタイルに関するリソースはありますか?Mark Volkmannのすばらしいページを見つけましたが、私が調べた本は少し余計なもののようです。

また、Javaについて何を知る必要がありますか?Clojureを学ぶためだけにJavaを学ぶのではなく、少なくとも少しは知っておく必要があると思います。また、ワークフローはどのようなものですか?私の経験は動的言語に限定されているので、JVMにソースなしでアプリケーションを配布するために何をしなければならないのかわかりません。

私はこれを明らかにグーグルで検索しましたが、大量の情報があり、「clojure固有の」ものはあまりありません。

ある種の論理的な順序で読むべき文学の種類について、いくつかの賢明な提案を探していると思います。

4

2 に答える 2

15

Blip.tvで処理できる限り多くのClojureビデオ、特にRichHickey自身によるビデオを見るのは間違いありません。これらは、Clojureに固有の概念的なポイントと側面を理解するのに役立ちます。

Lispの概念に十分に精通している場合は、最初に、ClojureがプレイしたLispにどのように「マッピング」されるかを学ぶことに集中することをお勧めします。「LispプログラマーのためのClojure」に関するRichHickeyのビデオをご覧ください。

ClojureはJavaの使用を躊躇しないため、Javaにある程度精通している必要があります。賢いところでJavaを使うのは、(私が知る限りでは)どういうわけかClojureyのせいではありません。Clojureプログラム内で自動的に利用可能であり、頻繁に使用されるため、少なくともおよびパッケージのAPIドキュメントをざっと見ていきます。java.langjava.iojava.langjava.io

私のClojure-to-Lisp辞書が頭の中にあり、Javaの基本が私の後ろにあるので、作業する小さなプロジェクトを選びます。ClojureおよびClojure-contribAPIドキュメントを手元に置いて(Web上で、またはREPLの(doc)コマンドを使用して)、そこにある多数のClojureブログを熟読してください。私のお気に入りの2つは、 http ://nakkaya.com/http://stuartsierra.com/です。Diigoを使用している場合、多数のブログがclojureグループにブックマークされています。

注:開発環境にとらわれないでください。はじめにのwikiページには多数のオプションがリストされています。Clojureと最初の小さなプロジェクトを学習するには、選択したプレーンテキストエディターを選択し、Leiningenの基本を学習して使用し、すべてのパスと依存関係が処理された優れたプロジェクトディレクトリのセットアップを取得してから、コマンド"を使用します。 lein repl」を使用して、すべての依存関係がロードされて使用可能なREPLを起動します。(以前のLispの経験に基づいて)Emacsを使用していると仮定すると、すべてが自動的に機能するように、サンプルプロジェクトのルートからEmacsを起動することができdescribe-variableます。inferior-lisp-programlein repl

読むことができる本があります。特に、The Joy of Clojure、Programming Clojure、PracticalClojureです。後者の2つは、最初の2つよりも「実用的」であり、最初の2つはより「哲学的」です(大まかな一般化を言い訳になります)。実用的なClojureはClojure1.2で最新ですが、ProgrammingClojureは少し古いです。

最後に、#clojure IRCチャネルにアクセスして、Clojure Googleグループを使用します。これは、他の人を助けることを楽しんでいる賢くてフレンドリーな人々がた​​くさんいるからです。

于 2011-01-21T22:20:34.937 に答える
2

反対方向からClojureに来た人からの簡単な視点(Java-> Clojure)

  • 構文と一般的なイディオムを理解すると、ClojureのLispyの部分を簡単に習得できることがわかりました。それがあなたにとってさらに簡単になることを期待しています。
  • ほとんどのことを行うのにJavaの知識はそれほど必要ありません。必要に応じて、純粋なClojureでほとんどすべてを行うことができます。
  • Java相互運用機能に飛び込む必要があるのは、おそらくJavaライブラリを使い始めたときだけです。幸い、相互運用機能は非常に単純です。JavaスタイルよりもLISPスタイルであるため、Javaインターフェースを理解し、Clojure側から適切な呼び出しを行う方法を理解する必要があります。

私の環境では、Eclipse + Counterclockwiseを使用しています。これは、IDEが好きな場合や、最終的にJavaでも作業を行いたいと思う場合に非常にうまく機能します。それ以上の依存関係は必要なく、優れたデバッガーを提供し、完全なREPL(私が信じる埋め込みnREPL)を備え、すべてのプロジェクトファイル管理(Git、SVNなど)を実行し、Javaクラスパスのセットアップなどを自動的に処理します( Javaの初心者にとっては大きな障害になる可能性があります!)。自分のスタイルに合っていると思うなら、ぜひチェックしてみてください。Enclojureについても良いことを聞いています。

IDEに興味がない場合は、semperosが優れた回答で示唆しているように、お気に入りのテキストエディタとコマンドラインツールを使用するのがおそらく最善です。

于 2011-01-22T12:28:45.827 に答える