| パラダイム | マルチパラダイム: |
|---|---|
| 家族 | リスプ |
| デザイン: | リッチ・ヒッキー |
| 初登場 | 2007年 |
| 安定リリース | 1.11.2 [8]
/ 2024年3月8日 |
| タイピングの規律 | |
| メモリ管理 | ホスト経由のガベージコレクション( JVM、CLR、ClojureScriptの場合はV8などのJavaScriptランタイム、またはBEAM(下記参照)) |
| プラットフォーム | |
| ライセンス | エクリプスパブリック |
| ファイル名拡張子 |
|
| Webサイト | クロージュア |
| 方言 | |
| ClojureScript、ClojureDart | |
| 影響を受けた | |
| 影響を受けた | |
Clojure(/ ˈ k l oʊ ʒ ər /、クロージャに似ている)[17] [18]は、 Javaプラットフォーム上のプログラミング言語Lispの動的かつ関数型的な 方言です。[19] [20]
他のほとんどの Lisp と同様に、Clojure の構文はS 式に基づいて構築されており、コンパイルされる前にまずLisp リーダーによってデータ構造に解析されます。[21] [17] Clojure のリーダーは、リストに加えてマップ、セット、ベクトルのリテラル構文をサポートしており、これらは前述の構造に直接コンパイルされます。 [21] Clojure はコードをデータとして扱い、Lisp マクロシステムを備えています。[22] Clojure はLisp-1であり、他の Lisp 方言とのコード互換性は意図されていません。これは、他の Lisp とは互換性のない独自のデータ構造を使用しているためです。[22]
Clojureは不変性と不変データ構造を提唱し、プログラマーがアイデンティティとその状態の管理について明示的に記述することを推奨しています。[23]不変値と明示的な時間進行構造によるプログラミングに重点を置くことで、より堅牢で、特に並行性のあるシンプルで高速なプログラムの開発を容易にしています。[24] [25] [17] Clojureの型システムは完全に動的ですが、最近の取り組みでは依存型システムの実装も模索されています。[26]
この言語は、もともと Java プラットフォーム向けに 2000 年代半ばにRich Hickeyによって作成されました。その後、 Common Language Runtime (.NET) などの他のプラットフォームにも移植されました。Hickey は、この言語の生涯にわたる善意の独裁者として、この言語の開発をリードし続けています。
歴史

リッチ・ヒッキーはClojure言語の作者です。[19] Clojure以前には、.NETプラットフォームdotLispをベースにした同様のプロジェクトである[27]や、LispとJavaの相互運用性を提供するための3つの試み、すなわちCommon Lisp用のJava外国語インターフェース( [28 ])、 [29] Lisp用の外部オブジェクトインターフェース(FOIL)、[30]、およびLispに適したJavaサーブレットインターフェース(Lisplets)を開発しました。[31]jfli
ヒッキーは2007年10月にClojureを一般公開するまでに約2年半を費やし、[31]そのほとんどの時間を外部からの資金援助なしでClojureに専念して取り組んでいました。この期間の終わりに、ヒッキーはCommon Lispコミュニティの友人数名にこの言語を発表するメールを送りました。
ヒッキーによれば、Clojureの名前は、プログラミング概念「クロージャ」に、それぞれC#、Lisp、Javaの文字C、L、Jを組み合わせた言葉遊びで、この3つの言語はClojureの設計に大きな影響を与えました。[18]
デザイン
リッチ・ヒッキーは、関数型プログラミングのための現代的なLisp、既存のJavaプラットフォームと共生し、並行性を考慮して設計されたものを求めたため、Clojureを開発した。[24] [25] [32] [17]彼はまた、プログラミング言語の設計とソフトウェアアーキテクチャにおけるシンプルさの重要性を強調し、疎結合、継承の代わりにプロトコルと型クラスを介したポリモーフィズム、メソッドの代わりに名前空間化されたステートレス関数、または構文をデータに置き換えることを提唱している。[33] [34] [35]
Clojureの状態へのアプローチは、アイデンティティの概念によって特徴付けられ、[23]これは時間の経過に伴う不変の状態の連続として表現されます。状態は不変の値であるため、任意の数のワーカーが並行して操作することができ、並行性は、ある状態から別の状態への変化を管理する問題になります。この目的のために、Clojureは、状態間の遷移について明確に定義されたセマンティクスを持ついくつかの可変参照型を提供します。[23]
ClojureはJavaプラットフォーム上で動作し、その結果Javaと統合され、ClojureからJavaコードの呼び出しを完全にサポートしています。 [36] [17]また、ClojureコードはJavaから呼び出すこともできます。[37]コミュニティは、プロジェクトの自動化にClojureコマンドラインインターフェイス(CLI)[38]やLeiningenなどのツールを使用しており、 Maven統合をサポートしています。 これらのツールは、プロジェクトパッケージの管理と依存関係を処理し、Clojure構文を使用して構成されます。
Lisp方言として、Clojureは関数を第一級オブジェクトとして、読み取り-評価-印刷ループ(REPL)、およびマクロシステムをサポートしています。[6] ClojureのLispマクロシステムは、Clojureのバッククォート(「構文クォート」と呼ばれる)のバージョンがシンボルを名前空間で修飾することを除いて、Common Lispのものと非常によく似ています。名前空間修飾された名前へのバインディングは禁止されているため、これは意図しない名前のキャプチャを防ぐのに役立ちます。キャプチャマクロの展開を強制することは可能ですが、明示的に行う必要があります。Clojureはユーザー定義のリーダーマクロを許可していませんが、リーダーはより制約された形式の構文拡張をサポートしています。[39] Clojureはマルチメソッドをサポートし[40]、インターフェースのような抽象化のために、プロトコル[41]ベースのポリモーフィズムとレコード[42]を使用したデータ型システムがあり、式の問題を回避するように設計された高性能で動的なポリモーフィズムを提供します。
Clojureは遅延シーケンスをサポートしており、不変性と永続的なデータ構造の原則を推奨しています。関数型言語として、副作用ベースのループではなく、再帰と高階関数に重点が置かれています。自動末尾呼び出し最適化は、JVMがネイティブでサポートしていないためサポートされていません。[43] [44] [45]キーワードを使用して明示的にサポートすることは可能ですrecur。[46]並列および同時プログラミングのために、Clojureはソフトウェアトランザクションメモリ、[47]リアクティブエージェントシステム、[1]およびチャネルベースの同時プログラミングを提供します。[48]
Clojure 1.7では、Clojure、ClojureScript、ClojureCLRコードを同じ名前空間に埋め込むことができるリーダー条件が導入されました。[49] [21]トランスデューサーは、変換を構成する方法として追加されました。トランスデューサーにより、 mapやfoldなどの高階関数が、入力データの任意のソースに一般化できるようになります。伝統的にこれらの関数はシーケンスに対して動作しますが、トランスデューサーを使用すると、チャネルに対して動作し、ユーザーが変換用の独自のモデルを定義できるようになります。[50] [51] [52]
拡張可能なデータ表記
拡張データ表記法(edn)[53]は、データ転送フォーマットとして意図されたClojure言語のサブセットです。これはClojureデータ構造のシリアル化とデシリアル化に使用でき、Clojure自体はプログラムを表現するのにednのスーパーセットを使用します。
edn はJSONやXMLと同様の方法で使用されますが、組み込み要素のリストが比較的大きく、以下に例を示します。
- ブール値:
true,false - 文字列:
"foo bar" - 文字:
\c、\tab - シンボル:
name - キーワード:
:key - 整数:
123 - 浮動小数点数:
3.14 - リスト:
(a b 42) - ベクトル:
[a b 42] - 地図:
{:a 1, "foo" :bar, [1 2 3] four} - セット:
#{a b [1 2 3]} - nil:
nil( nullのような値)
これらの要素に加えて、タグの使用による拡張性もサポートされています。タグは、文字とそれに続く記号で構成されます#。タグに遭遇すると、リーダーは次の要素の値を対応するハンドラーに渡し、ハンドラーはデータ値を返します。たとえば、これはタグ付き要素 である可能性があり、#myapp/Person {:first "Fred" :last "Mertz"}その解釈はリーダーの適切なハンドラーに依存します。
他の要素を基準とした拡張要素のこの定義により、基本セットに含まれていない要素を伝えるために規則やコンテキストに依存する必要がなくなります。
代替プラットフォーム
Clojureの主なプラットフォームはJavaですが[20] [36]、他のターゲット実装も存在します。最も注目すべきは、ECMAScript 3にコンパイルされるClojureScript [54 ]と、そのエコシステムと相互運用可能な.NETプラットフォームへの完全なポートであるClojureCLR [56]です。
さまざまなプラットフォームでの Clojure の実装には、次のものがあります。
- Babashka、[57] GraalVMネイティブイメージとSmall Clojure Interpreterを活用したネイティブClojureスクリプト言語
- CljPerl、[58] Perl上のClojure
- ClojureDart、[59] ClojureをDartとFlutterに移植することで、モバイルとデスクトップアプリへのClojureの適用範囲を拡大する
- Clojerl、[60] BEAM上のClojure 、Erlang 仮想マシン
- basilisp、[61] Python 3.8以降を対象としたClojure互換(っぽい)Lisp方言
- ClojureRS、[62] Rust上のClojure
- Ferret [63]はマイクロコントローラ上で実行できる自己完結型のC++11にコンパイルされる。
- jank、[64] LLVMベースのJIT上でC++でホストされたネイティブClojure
- Joker [65] Go言語で書かれたインタープリタとリンタ
- Las3r [66] 、 ActionScript仮想マシン(Adobe Flash Playerプラットフォーム)上で動作するClojureのサブセット
- Pixie、[67] Clojureに触発されたRPythonで書かれたLisp方言
- Rouge、[68] RubyにおけるYARVのClojure
ツール
Clojure開発用のツールは、ここ数年で大幅に改善されました。以下は、Clojureプログラミングのサポートを追加するプラグインを備えた、人気のあるIDEとテキストエディタのリストです。 [69]
- Emacs、CIDER付き[70]
- IntelliJ IDEA、Cursive [71]付き(非商用利用の場合は無料ライセンスが利用可能)
- Sublime Text、Clojure Sublimed、[72]または Tutkain、[73]
- Vim、 fireplace.vim 付き、[74] [75] vim-elin、[76]または Conjure (Neovim のみ) [77] [78]
- Visual Studio Code、Calva [79]またはClover [80]を使用
- IDEに依存しない(静的解析やリンティングに言語サーバープロトコルを使用):clj-kondo [81]またはclojure-lsp [82]
コミュニティによって提供されるツールに加えて、公式のClojureコマンドラインインターフェース(CLI)ツール[38]もClojure 1.9以降Linux、macOS、Windowsで利用できるようになりました。 [83]
発達
開発プロセスはClojureコアチームに限定されていますが、問題はClojure JIRAプロジェクトページで公開されています。[84]誰でもask.clojure.orgで質問したり、問題やアイデアを送信したりできます。[85]新しい問題がJIRAチケットに値すると判断された場合、コアチームのメンバーがそれをトリアージして追加します。JIRAの問題はスクリーナーチームによって処理され、最終的にRich Hickeyによって承認されます。[86] [87]
インパクト
関数型プログラミングへの関心が高まり続ける中、Javaプラットフォームを使用するソフトウェア開発者によるClojureの採用は増加し続けています。この言語は、ブライアン・ゲッツ、[88] [89] [90]エリック・エバンス、[91] [92] ジェームズ・ゴスリング、[93] ポール・グラハム、[94]ロバート・C・マーティンなどのソフトウェア開発者からも推奨されています。[95] [96] [97] [98] ThoughtWorksは、テクノロジーレーダーで関数型プログラミング言語を評価した際、[99] 2010年にClojureを「JVM上のLispのシンプルでエレガントな実装」と評し、2012年にそのステータスを「ADOPT」に昇格させました。[100]
SnykとJava Magazineが共同で作成した「JVMエコシステムレポート2018」(「Java開発者に対するこれまでで最大の調査」と称される)では、Clojureが「主要アプリケーション」のJVM上で2番目に多く使用されているプログラミング言語にランクされています。[101] Clojureは、 Apple、 [102 ] 、 [103] [104] Atlassian、[105] Funding Circle、[106] Netflix、[107] Nubank、[108] Puppet、[109] Walmart [110]などの企業や、 NASAなどの政府機関で使用されています。[111]また、視覚芸術、音楽、ゲーム、詩などのクリエイティブコンピューティングにも使用されています。[112]
2023年版のStack Overflow開発者調査では、Clojureはプログラミング言語とスクリプト言語のカテゴリーで4番目に高く評価され、昨年Clojureを使用した回答者の68.51%が、今後も引き続き使用したいと回答しました。ただし、望ましいカテゴリーでは、調査対象者のわずか2.2%がそう評価したのに対し、最高得点のJavaScriptは調査に参加した開発者の40.15%が望ましいと回答しました。 [113]
リリース履歴
参照
参考文献
- ^ ab 「エージェントと非同期アクション」。Clojure.org 。2019年7月7日閲覧。
- ^ 「並行プログラミング」。Clojure.org 。 2019年7月7日閲覧。
- ^ Hickey, Rich; 寄稿者。「core.async」。GitHub 。 2019年7月7日閲覧。
- ^ 「関数型プログラミング」。Clojure.org 。 2019年7月7日閲覧。
- ^ Nolen, David; Hickey, Rich. 「core.logic」。GitHub 。 2019年7月7日閲覧。
- ^ ab "マクロ". Clojure.org . 2019年7月7日閲覧。
- ^ Esterhazy, Paulus. 「スレッドマクロガイド」。Clojure.org 。2019年7月7日閲覧。
- ^ ab Miller, Alex (2024-03-08). 「Clojure 1.11.2 リリース」. Clojure.org。
- ^ Fogus, Michael (2011). 「Rich Hickey Q&A」. CodeQuarterly.com . 2017年1月11日時点のオリジナルよりアーカイブ。
- ^ Hickey, Rich (2011). 「Simple Made Easy」. YouTube .[より良い情報源が必要]
- ^ Bonnaire-Sergeant, Ambrose (2012). Clojure の実用的なオプション型システム(論文). 西オーストラリア大学.
- ^ 「Clojure プログラミング」(PDF) . OReilly.com . 2013 年 4 月 30 日閲覧。
- ^ Hickey, Rich. 「Clojure Bookshelf」。Amazon.com 。 2017年10月3日時点のオリジナルよりアーカイブ。2019年7月7日閲覧。
- ^ Rose, Calvin; 寄稿者。「Janet Language」。Janet-Lang.org 。 2023年2月18日閲覧。
- ^ ティモシー・ボールドリッジ。「Pixie」。PixieLang.org 。2019年7月7日閲覧。
- ^ ラマチャンドラ、ラムクマール。 「ライン」。GitHub。2019-07-07に取得。
- ^ abcde Edwards, Kathryn (2009-08-10). 「The AZ of Programming Languages: Clojure」. Computerworld.com.au . 2019-08-26時点のオリジナルよりアーカイブ。
- ^ ab Hickey, Rich (2009-01-05). 「Clojure の意味と発音」. Google.com .
- ^ ab Krill, Paul (2012-03-22). 「Clojure の発明者 Hickey が Android を目指す」InfoWorld.com。
- ^ ab "Clojure". Clojure.org . 2019年7月7日閲覧。
- ^ abc "The Reader". Clojure.org . 2019年7月7日閲覧。
- ^ ab 「他の Lisp との違い」。Clojure.org 。2019年 7 月 7 日閲覧。
- ^ abc 「価値と変化: Clojure のアイデンティティと状態へのアプローチ」。Clojure.org 。2019 年 7 月 7 日閲覧。
- ^ ab Hickey, Rich. 「Rationale」. Clojure.org . 2019年7月7日閲覧。
- ^ ab Torre, Charles (2009-10-06). 「Expert to Expert: Rich Hickey と Brian Beckman – Inside Clojure」. MSDN.com。
- ^ "clojure/spec.alpha". GitHub . 2017-04-26.
- ^ Hickey, Rich (2002-10-16). 「[ANN] dotLisp: .Net 用の Lisp 方言」. Google.com .
- ^ Hickey, Rich (2013-04-15). 「jfli」. SourceForge.net .
- ^ Hickey, Rich (2013-04-03). 「foil: Lisp 用外部オブジェクト インターフェース」. SourceForge.net .
- ^ Hickey, Rich (2013-03-07). 「Lisplets」. SourceForge.net .
- ^ ab Hickey , Rich (2020-06-12). 「Clojureの歴史」ACM on Programming Languagesの議事録。4 (HOPL) : 1–46。doi : 10.1145 /3386321。S2CID 219603760 。
- ^ Elmendorf, Dirk (2010-04-01). 「Economy Size Geek – Clojure の作者 Rich Hickey 氏へのインタビュー」LinuxJournal.com。
- ^ 「Simple Made Easy」。InfoQ 。 2024年5月2日閲覧。
- ^ 「(iterate think thoughts): データ指向プログラミングの利点」yogthos.net . 2024年5月2日閲覧。
- ^ 「talk-transcripts/Hickey_Rich/EffectivePrograms.md at master · matthiasn/talk-transcripts」。GitHub 。 2024年5月2日閲覧。
- ^ ab 「JVM 上でホスト」。Clojure.org 。2019年 7 月 7 日閲覧。
- ^ 「Java Interop」。Clojure.org 。 2019年7月7日閲覧。
- ^ ab Miller, Alex. 「Deps and CLI Guide」. Clojure.org . 2019年7月8日閲覧。
- ^ Hickey, Rich. 「edn」. GitHub . 2019年7月7日閲覧。
- ^ 「マルチメソッドと階層」Clojure.org . 2019年7月7日閲覧。
- ^ 「プロトコル」。Clojure.org 。2019年7月7日閲覧。
- ^ 「データ型: deftype、defrecord、reify」。Clojure.org 。2019年7月7日閲覧。
- ^ Goetz, Brian (2014-11-20). 「Stewardship: the Sobering Parts」YouTube.com。
- ^ Rose, John (2007-07-12). 「VM での末尾呼び出し」Oracle.com。
- ^ Rose, John (2009-02-11). 「一部の言語では末尾呼び出しを実行できる必要があります」. Java.net .
- ^ 「特別なフォーム」。Clojure.org 。 2019年7月7日閲覧。
- ^ 「Refs and Transactions」. Clojure.org . 2019年7月7日閲覧。
- ^ Hickey, Rich (2013-06-28). 「Clojure core.async チャネル」. Clojure.org .
- ^ ab Miller, Alex (2015-06-30). 「Clojure 1.7 が利用可能になりました」. Clojure.org .
- ^ Hickey, Rich (2014-09-17). 「トランスデューサー」. YouTube.com .
- ^ Hickey, Rich (2014-08-06). 「トランスデューサーがやってくる」Cognitect.com。
- ^ Hickey, Rich (2014-11-20). 「トランスデューサーの内部」YouTube.com。
- ^ 「公式EDN仕様」. edn-format.org . 2022-04-27.
- ^ “ClojureScript”. ClojureScript.org . 2019年7月6日閲覧。
- ^ 「ClojureScript – FAQ (JavaScript 開発者向け)」。ClojureScript.org。2018年 2 月 4 日閲覧。
- ^ 「ClojureCLR」。GitHub 。 2012年6月28日閲覧。
- ^ ボーケント、ミシェル。 「ババーシュカ」。ババシュカ.org 。2019年8月19日に取得。
- ^ Hu, Wei. 「Perl 上の Lisp」。MetaCPAN.org。2019年 7 月 6 日閲覧。
- ^ 「What is ClojureDart?」、GitHub、Tensegritics、2022-12-16、2022-12-16取得
- ^ Facorro, Juan. 「Clojerl」. GitHub . 2019年7月6日閲覧。
- ^ "basilisp". GitHub . 2024年5月13日閲覧。
- ^ “ClojureRS”. GitHub . 2022年3月17日閲覧。
- ^ アッカヤ、ヌルラ。 "フェレット"。Ferret-Lang.org 。2019年7月6日に取得。
- ^ ウィルカーソン、ジェイ. 「ジャンク」。Jank-Lang.org 。2022-08-17に取得。
- ^ Bataev, Roman. 「ジョーカー」. Joker-Lang.org . 2019年7月6日閲覧。
- ^ 大砲、エイモン。 「ラズ3r」。GitHub 。2019年7月6日に取得。
- ^ ティモシー・ボールドリッジ。「Pixie」。PixieLang.org 。2019年7月6日閲覧。
- ^ Connor, Ashe. 「Rouge」. GitHub . 2019年7月6日閲覧。
- ^ Miller, Alex (2019-02-04). 「State of Clojure 2019」の結果. Clojure.org .
- ^ Batsov, Bozhidar; 寄稿者。「CIDER: 素晴らしい Clojure インタラクティブ開発環境」。CIDER.mx。2019年7 月 5 日閲覧。
- ^ Fleming, Colin. 「Cursive: Clojure および ClojureScript 言語の完全なサポートを提供します」。JetBrains.com 。2019 年 7 月 5 日閲覧。
- ^ プロコポフ、ニキータ. 「クロージュア・サブライムド」。PackageControl.io 。2023-02-18に取得。
- ^ ヘレニウス、エーロ。 「ツトカイン」。フローシング.me 。2023-02-18に取得。
- ^ Pope, Tim. 「fireplace.vim: Clojure REPL サポート」。VIM.org。2019年 7 月 5 日閲覧。
- ^ Monroe, Dominic (2016-12-13). 「Clojure と Vim: 概要 – それは非常に可能です」JUXT.pro。
- ^ 飯塚 正志 (2024-04-29). 「vim-elin: Vim/Neovim 用の Clojure 開発環境。主に Babashka で書かれています」。GitHub 。2024-05-02にオリジナルからアーカイブ。2024-05-02に取得。
- ^ Caldwell, Oliver. 「prepl 上の Neovim Clojure(Script) ツール」。GitHub。2019年11 月 9 日閲覧。
- ^ Caldwell, Oliver (2019-11-06). 「数分で Clojure、Neovim、Conjure を使い始める」oli.me.uk。
- ^ Strömberg, Peter. 「Calva: Clojure & ClojureScript インタラクティブプログラミング」。VisualStudio.com 。2019年7月5日閲覧。
- ^ マウリシオ、サボ。 「クローバー」。VisualStudio.com 。2021年1月28日閲覧。
- ^ clj-kondo/clj-kondo、clj-kondo、2024-04-30、2024-05-02取得
- ^ 「概要 - Clojure LSP」。clojure -lsp.io 。 2024年5月2日閲覧。
- ^ Miller, Alex (2017-12-08). 「Clojure 1.9」. Cognitect.com .
- ^ 「Clojure」。Atlassian.net 。 2019年7月7日閲覧。
- ^ 「Clojure フォーラム」。clojure.org 。2020年 3 月 20 日閲覧。
- ^ Hickey, Rich (2018-11-26). 「オープンソースはあなたに関するものではありません」. GitHub .
- ^ 「ワークフロー」。Clojure.org 。 2019年7月7日閲覧。
- ^ Goetz, Brian (2020-05-24). 「Brian Goetz のお気に入りの非 Java JVM 言語 (パート 1/3)」. Twitch.tv。
- ^ Goetz, Brian (2020-05-24). 「Brian Goetz のお気に入りの非 Java JVM 言語 (パート 2/3)」. Twitch.tv。
- ^ Goetz, Brian (2020-05-24). 「Brian Goetz のお気に入りの非 Java JVM 言語 (パート 3/3)」. Twitch.tv。
- ^ Evans, Eric (2018-08-14). 「モデリングの時間: Eric Evans: ドメイン駆動設計ヨーロッパ 2018」。YouTube.com。
- ^ エリック・エヴァンス (2014-11-21). 「エリック・エヴァンスのTwitter」Twitter.com。
- ^ 「James Gosling がロンドン Java コミュニティと交流」YouTube.com 2016 年 10 月 11 日。
- ^ Graham, Paul (2016-05-06). 「Paul Graham on Twitter」Twitter.com。
- ^ Martin, Robert (2019-08-22). 「なぜ Clojure なのか?」CleanCoder.com。
- ^ Martin, Robert (2018-11-29). 「Unble Bob Martin on Twitter」Twitter.com。
- ^ Martin, Robert (2018-08-01). 「関数型プログラミング入門」CleanCoders.com。
- ^ Martin, Robert (2017-07-11). 「実用的な関数型プログラミング」. CleanCoder.com .
- ^ 「テクノロジーレーダー | 今日のテクノロジーランドスケープに関する独自のガイド」。Thoughtworks 。 2024年5月20日閲覧。
- ^ 「テクノロジーレーダー: Clojure」。ThoughtWorks.com 。2019年2月10日閲覧。
- ^ Maple, Simon; Binstock, Andrew (2018-10-17). 「JVM エコシステム レポート 2018」. Snyk.io .
- ^ 「成功事例」Clojure.org . 2018年10月27日閲覧。
- ^ Liutikov, Roman (2017-12-17). 「Roman Liutikov on Twitter」Twitter.com。
- ^ 「Appleでの雇用」Apple.com 2019年7月6日閲覧。
- ^ Borges, Leonardo (2015-07-07). 「Clojure によるリアルタイムコラボレーション」。YouTube.com。
- ^ Pither, Jon (2016-10-04). 「ロンドンの Clojure: Funding Circle – Lending some Clojure」JUXT.pro。
- ^ Williams, Alex (2014-08-03). 「新しいスタックメーカー: Adrian Cockcroft が語る Sun、Netflix、Clojure、Go、Docker など」TheNewStack.io。
- ^ "Nubank は、Cognitect 社の北アメリカ技術を買収". 2020年7月23日。
- ^ Price, Chris (2014-04-11). 「Puppet Labs におけるアプリケーション サービスの新時代」. Puppet.com . 2020 年 8 月 6 日閲覧。
- ^ Phillips, Marc (2015-07-14). 「Walmart が大規模に Clojure を実行」Cognitect.com。
- ^ 「Common-Metadata-Repository」。GitHub 。 2019年7月6日閲覧。
- ^ Meier, Carin (2015-05-06). 「Clojure によるクリエイティブコンピューティング」. OReilly.com .
- ^ 「Stack Overflow 開発者アンケート 2023」。Stack Overflow 。 2024年5月2日閲覧。
- ^ Hickey, Rich (2009-05-04). 「Clojure 1.0」. BlogSpot.com .
- ^ Hickey, Rich (2009-12-31). 「Clojure 1.1 リリース」. BlogSpot.com .
- ^ Hickey, Rich (2010-08-19). 「Clojure 1.2 リリース」. Google.com .
- ^ クリストファー・レディンガー (2011-09-23)。 「[ANN] Clojure 1.3 リリース」。Google.com。
- ^ Dipert, Alan (2012-04-17). 「[ANN] Clojure 1.4 リリース」. Google.com .
- ^ Halloway, Stuart (2013-03-01). 「ANN: Clojure 1.5」. Google.com .
- ^ Halloway, Stuart (2013-03-10). 「Clojure 1.5.1」. Google.com .
- ^ Miller, Alex (2014-03-25). 「[ANN] Clojure 1.6」. Google.com .
- ^ Miller, Alex (2016-01-19). 「Clojure 1.8 が利用可能になりました」. Clojure.org .
- ^ Miller, Alex (2017-12-08). 「Clojure 1.9 が利用可能になりました」. Clojure.org .
- ^ Miller, Alex (2018-12-17). 「Clojure 1.10 リリース」. Clojure.org .
- ^ Miller, Alex (2019-06-06). 「Clojure 1.10.1 リリース」. Clojure.org。
- ^ Miller, Alex (2021-01-26). 「Clojure 1.10.2 リリース」. Clojure.org。
- ^ Miller, Alex (2021-03-04). 「Clojure 1.10.3 リリース」. Clojure.org .
- ^ Miller, Alex (2022-03-22). 「Clojure 1.11.0 リリース」. Clojure.org。
- ^ Miller, Alex (2022-04-05). 「Clojure 1.11.1 リリース」. Clojure.org。
- ^ Miller, Alex (2024-09-05). 「Clojure 1.12.0 リリース」. Clojure.org。
さらに読む
- ソトニコフ、ドミトリ (2020)。 『 Clojure による Web 開発』(第 3 版)。Pragmatic Bookshelf。ISBN 978-1-68050-682-2。
- オルセン、ラス (2018)。Clojure入門。Pragmatic Bookshelf。ISBN 978-1-68050-300-5。
- ミラー、アレックス; ハロウェイ、スチュアート; ベドラ、アーロン (2018)。プログラミング Clojure (第 3 版) 。Pragmatic Bookshelf。ISBN 978-1-68050-246-6。
- マイヤー、カリン (2015)。 Living Clojure: 開発者のための入門およびトレーニング プラン(第 1 版) 。O'Reilly Media。ISBN 978-1-491-90904-1。
- ラソーレ、アミット、アビラ、フランシス (2015)。Clojure in Action (第 2 版) 。Manning Publications。ISBN 978-1-61729-152-4。
- ヒギンボサム、ダニエル (2015)。『 Clojure for the Brave and True』No Starch Press。ISBN 978-1-59327-591-4。
- ギャンブル、ジュリアン (2015) 。Clojureレシピ。ピアソン出版。ISBN 978-0-32192-773-6。
- ヴァンドグリフト、ベン、ミラー、アレックス (2015)。Clojure応用。Pragmatic Bookshelf。ISBN 978-1-68050-074-5。
- ロチェスター、エリック (2015) 。Clojureデータ分析クックブック (第 2 版) 。Packt Publishing。ISBN 978-1-78439-029-7。
- フォガス、マイケル、ハウザー、クリス (2014)。The Joy of Clojure (第 2 版) 。Manning Publications。ISBN 978-1-617291-41-8. 2018年10月23日時点のオリジナルよりアーカイブ。2018年11月5日閲覧。
- ケルカー、ライアン (2013)。ドメイン固有言語のためのClojure。Packt Publishing。ISBN 978-1-78216-650-4。
- ロチェスター、エリック (2014)。Clojure データ分析の習得。Packt Publishing。ISBN 978-1-78328-413-9。
- Emerick, Chas; Carper, Brian; Grand, Christophe (2012 年 4 月 19 日)。Clojureプログラミング。O'Reilly Media。ISBN 978-1-4493-9470-7。
- ヴァンダーハート、ルーク、シエラ、スチュアート(2010 年 6 月 7 日)。実践Clojure。Apress。ISBN 978-1-4302-7231-1。
外部リンク
- 公式サイト
