本文へスキップ

Clojureとは?

くろーじゃー

Clojureとは、JVM上で動作するLisp系の関数型プログラミング言語で、不変データ構造と並行処理の容易さが特徴です。

Clojure(クロージャー)は、2007年にRich Hickeyが設計したプログラミング言語で、JVM(Java仮想マシン)上で動作するLisp方言の一つです。JavaScriptランタイム向けのClojureScript、.NET向けのClojureCLRなどのバリアントも存在します。

Clojureの設計思想は「実用的な関数型プログラミング」にあり、以下の特徴を持ちます。

  • 不変データ構造:リスト・ベクタ・マップ・セットがすべてデフォルトで不変(immutable)であり、データ変更は新しい構造を生成することで行う
  • 関数型プログラミング:関数が第一級オブジェクトであり、高階関数・クロージャ・遅延評価を積極的に活用する
  • STM(ソフトウェアトランザクショナルメモリ):並行処理を安全に記述するための独自の状態管理機構を持つ
  • Javaとの相互運用:Javaライブラリを直接呼び出せ、既存のJavaエコシステムを活用できる

Clojureの構文はLisp特有のS式(カッコによる前置記法)を採用しており、マクロによるコード生成が強力です。REPLを用いた対話的開発が基本スタイルであり、コードを書きながらリアルタイムで動作確認できる開発体験が特徴的です。

Webバックエンド(Ring/Compoj)・データパイプライン・金融システムなどで採用事例があり、関数型プログラミングを実業務に適用したい開発者から支持されています。

使い方・例文

JavaのSpringフレームワークを使っていたチームが、並行処理の複雑さを解消するためにClojureへ移行し、STMとimmutableデータ構造で状態管理を単純化した事例などで登場します。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語