clojure チュートリアル
clojureを使い始める
サーチ…
備考
Clojure は、Lisp構文を持つ動的に型付けされた汎用プログラミング言語です。
その機能は、ファーストクラス関数と不変の値を持つプログラミングの機能スタイルをデフォルトでサポートしています。再割り当て可能な変数の使用は、Clojureでは多くの主流言語のように簡単ではありません。なぜなら、変数はコンテナオブジェクトのように作成および更新する必要があるからです。これは、最後に見たときの状態にとどまる純粋な価値の使用を奨励します。これにより、通常、コードの予測、テスト、並行処理が可能になります。これは、Clojureの組み込みデータ構造が永続的であるため、コレクションでも機能します。
パフォーマンスのために、Clojureはタイプヒントをサポートして、可能な限り不要なリフレクションを排除します。また、永続的なコレクションに対する変更のグループは、 一時的なバージョンに対して行うことができ、関連するオブジェクトの量を減らすことができます。永続的なコレクションは大部分のデータを共有しているため、コピーが高速になるため、ほとんどの場合、これは必ずしも必要ではありません。彼らの性能保証は、それらの変更可能な対応から遠く離れていません。
とりわけ、Clojureには次のような特徴があります。
- ソフトウェアトランザクションメモリ(STM)
- 手動ロック(原子、エージェント)を伴わないいくつかの並行処理プリミティブ
- 合成可能なシーケンストランス(トランスデューサ)、
- 機能的な樹木操作施設(ジッパー)
簡単な構文と高い拡張性(マクロによる実装、コアインタフェースの実装とリフレクション)により、一般的に見られる言語機能をClojureにライブラリで追加することができます。例えば、 core.typed
は静的型チェッカーをもたらし、 core.async
は単純なチャネルベースの並行処理機構をもたらし、 core.logic
は論理プログラミングをもたらします。
ホストされた言語として設計され、実行されるプラットフォームと相互運用することができます。主なターゲットはJVMであり、Javaの背後にあるエコシステム全体ですが、Common Language Runtimeで動作するClojureCLRやJavaScriptランタイム(Webブラウザを含む)で動作するClojureScriptなど、別の環境でも代替実装を実行できます。代替実装では、JVMバージョンの機能の一部が不足している可能性がありますが、それらは引き続き1つの言語ファミリとみなされます。
バージョン
バージョン | ログの変更 | 発売日 |
---|---|---|
1.8 | 最新の変更履歴 | 2016-01-19 |
1.7 | 変更ログ1.7 | 2015-06-30 |
1.6 | ログを変更する1.6 | 2014-03-25 |
1.5.1 | ログの変更1.5.1 | 2013-03-10 |
1.4 | 変更ログ1.4 | 2012-04-15 |
1.3 | ログ1.3を変更 | 2011-09-23 |
1.2.1 | 2011-03-25 | |
1.2 | 2010-08-19 | |
1.1 | 2010-01-04 | |
1.0 | 2009-05-04 |
インストールとセットアップ
オプション1: ライニング
JDK 6以降が必要です。
Clojureを使い始める最も簡単な方法は、Clojureプロジェクトを管理する事実上の標準ツールであるLeiningenをダウンロードしてインストールし、 lein repl
を実行してREPLを開くことです。
Linux
curl https://raw.githubusercontent.com/technomancy/leiningen/stable/bin/lein > ~/bin/lein export PATH=$PATH:~/bin chmod 755 ~/bin/lein
OS X
上記のLinux手順に従うか、またはmacOSパッケージマネージャを使用してインストールしてください。
Homebrewでインストールする
brew install leiningen
MacPortsでインストールする
最初にClojureをインストールする
sudo port -R install clojure
ClojureのビルドツールLeiningen
をインストールする
sudo port -R install leiningen
lein self-install
Windows
公式の文書を参照してください。
オプション2: 公式配信
JRE 6以降が必要です。
Clojureリリースは、JVM上で実行される単純なJARファイルとして公開されています。これは、通常、Clojureビルド・ツールの内部で発生します。
http://clojure.orgにアクセスし、最新のClojureアーカイブをダウンロードしてください。
ダウンロードしたZIPファイルを任意のディレクトリに展開します。
そのディレクトリに
java -cp clojure-1.8.0.jar clojure.main
を実行します。実際にダウンロードしたJARファイルの名前を、そのコマンドで
clojure-1.8.0.jar
に置き換えなければならない場合があります。より良いコマンドラインREPLエクスペリエンス(以前のコマンドでのサイクリングなど)を行うには、
rlwrap
をインストールするとrlwrap
でしょうrlwrap java -cp clojure-1.8.0.jar clojure.main
オプション3: 起動
JDK 7以降が必要です。
Bootは多目的Clojureビルドツールです。それを理解するには、Clojureについての知識が必要です。したがって、初心者のための最良の選択肢ではないかもしれません。参照ウェブサイトをインストール手順については、(そこ開始を取得 ]をクリック)。
それがインストールされPATH
に入ったら、どこでもboot repl
を実行してClojure REPLをboot repl
することができboot repl
。
"こんにちは世界!" REPLで
Clojureコミュニティはインタラクティブな開発に重点を置いているため、ClojureとのやりとりはREPL(read-eval-print-loop)内で非常に多く発生します。あなたの入力は、それへの発現は、Clojureのは、それを読み込み 、それを評価し 、すべてのループでは、評価の結果を出力する場合。
これで、Clojure REPLを起動することができます。方法がわからない場合は、このトピックの「 インストールと設定」のセクションに従ってください。実行したら、次のように入力します。
(println "Hello, world!")
次にEnterを押します。 Hello, world!
この式の戻り値nil
続きます。
即座にクローゼットを実行したい場合は、オンラインのREPLを試してみてください。例えばhttp://www.tryclj.com/ 。
新しいアプリケーションを作成する
上記の手順に従ってLeiningenをインストールしたら、次のコマンドを実行して新しいプロジェクトを開始します。
lein new <project-name>
これにより、 <project-name>
フォルダ内にデフォルトのLeiningenテンプレートを持つClojureプロジェクトが設定されます。 Leiningenには、プロジェクトの構造に影響するいくつかのテンプレートがあります。最も一般的に使用されるテンプレート "app"はメイン関数を追加し、jarファイル(メイン関数がアプリケーションのエントリーポイント)にパックされるようにプロジェクトを準備します。これを実行するには、次のコマンドを実行します。
lein new app <project-name>
app-templateを使用して新しいアプリケーションを作成したと仮定すると、作成したディレクトリを入力してアプリケーションを実行することによって、すべてが正しくセットアップされたことをテストできます。
lein run
あなたがHello, World!
を見たらHello, World!
あなたのコンソールでは、すべての準備が整い、アプリケーションの構築を開始する準備が整いました。
次のコマンドを使用して、この単純なアプリケーションを2つのjarファイルにパックできます。
lein uberjar
"こんにちは世界!"ブートを使用して
注:この例を試す前に、Bootをインストールする必要があります。まだインストールしていない場合は、「 インストールと設定」セクションを参照してください。
Bootはshebang (#!)行を使用して実行可能なClojureファイルを作成することができます。次のテキストを任意のファイルに置きます(この例では、「現在の作業ディレクトリ」にあり、 hello.clj
という名前が付けられていhello.clj
)。
#!/usr/bin/env boot
(defn -main [& args]
(println "Hello, world!"))
次に、実行可能ファイルとしてマークします(該当する場合、通常はchmod +x hello.clj
実行しchmod +x hello.clj
)。
...( ./hello.clj
)を実行してください。
プログラムは "Hello、world!"を出力する必要があります。終了します。
新しいアプリケーションを作成する(ブートを使用)
boot -d seancorfield/boot-new new -t app -n <appname>
このコマンドは、 boot-new
をhttps://github.com/seancorfield/boot-newから取得し、 app
テンプレートを使用してタスクを実行するようにブートを指示します(他のテンプレートのリンクを参照)。このタスクでは、典型的なClojureアプリケーション構造を持つ<appname>
という新しいディレクトリが作成されます。詳細は、生成されたREADMEを参照してください。
アプリケーションを実行するには、 boot run
ます。他のコマンドはbuild.boot
で指定され、READMEに記述されています。