Clojure とは?

Clojure

Clojure最新情報

NRIのOpenStandiaが提供するClojure最新情報

OSSの保守サポートサービスの内容はこちら OSSの導入については、こちらのフォームからお問い合わせ下さい OSS全般の事例紹介はこちら

Clojureバージョンアップ情報

すべてを見る

更新日:2021-11-17

Clojureの概要

Clojure(クロージャ)は「関数型プログラミング言語」であるLisp(リスプ)の方言の一つの汎用プログラミング言語です。2007年に開発者であるRich Hickey氏により公開され、2009年5月4日にバージョン1.0がリリースされました。

「関数型プログラミング言語」とは、関数をオブジェクトのように扱える「第一級関数」、そして、その関数を引数や戻り値のように扱える「高階関数」をサポートするプログラミング言語です。

Rich Hickey 氏によると、Clojureを作成した理由は、Lispであり、関数型プログラミング言語であり、一般的なプラットフォームに対応し、かつ並行処理が得意な言語を探したが見つからなかったためで、Clojure という名前は、他に同じものが無く、C#の「C」、Lispの「L」、Javaの「J」を使えないか考えていたところ、Googleスペースのあまりにも広大な空間の逆の意味を持つ「閉鎖」を意味する Closure という言葉を思いつき、それをもじって Clojure としたそうです。発音はClosure と同じクロージャとされています。

TOPに戻る

Clojureの主な特徴

関数型プログラミング言語 ClojureはLispを源泉とした「関数型プログラミング言語」の一つです。Lisp同様「S式」と呼ばれる()を多用する書式で記述し、数式は「ポーランド記法」と呼ばれる書式で記述します。
JavaVM言語 ClojureはJava仮想マシン(JavaVM)上で動作するJavaVM言語の一つであり、Clojureの本体はjarファイルです。JavaVM言語であることの利点としてJavaのクラスを使うこともできます。
豊富なデータ構造 何も無いことを表すnilを始め、数値、文字列、キャラ、キーワード、シンボル、コレクション、リスト、ベクター、マップなどの豊富なデータ型が用意されています。なお、Clojureでは変数の値は不変なものとして扱います。
REPL REPL(Read-Eval-Print-Loop)と呼ばれる対話型形式で、コードをインタラクティブの作成することが可能です。
コードはデータ コードをデータとして扱います。コードはデータ、データはコードという考え方で、ホモコニック言語とも呼ばれる思想で設計されています。
マクロ Lispから引き継いだ強力なマクロ機能を持っています。
マルチスレッド ソフトウェアトランザクションメモリシステム(SMT)、及びリアクティブエージェントシステムによるクリーンなマルチスレッドを保証します。
遅延シーケンス データが必要になった時に評価を行う遅延シーケンスが使えます。この機能により無限に続くデータも扱えます。
ビルドツール Leiningenというビルドやパッケージ管理が出来るツールが用意されています。
豊富なライブラリ コミュニティリポジトリClojars.orgには豊富なライブラリが公開されています。
Java以外の実装 ClojureはJavaVM言語ですが、JavaScript に変換して動作する ClojureScript、.NET Frameworkのネイティブ実装である、ClojureCLR も派生プロダクトとして存在しています。

TOPに戻る

Clojureに関連するプログラミング言語

  • ClojureScript
  • ClojureCLR
  • Lisp
  • Scheme
  • Haskell
  • Scala

TOPに戻る

Clojureの動作環境

基本的にJavaVM上で動作するので、Mac、Linux、Windows で利用可能です。
コマンドラインツール clj のWindows版は現状ではまだα版ですが、本体はJavaのjar 形式ファイルなのでjavaコマンドで直接起動することも可能です。
Java 8以上に対応していますが、現在、推奨されているバージョンはJava8、または Java 11 です。

TOPに戻る

Clojureのライセンス

Clojureのライセンスは、Eclipse Public License 1.0で提供されています。
Eclipse Public License(EPL)はオープンソースのライセンスの1つで、EPLライセンスされたプログラムの受領者は、使用・修正・コピーや、修正したバージョンの配布が可能です。 しかし、修正したバージョンを配布する場合はソースコードの入手方法を示すなどの義務が生じます。

TOPに戻る

Clojureのダウンロード

入手方法およびインストール方法は下記を参照して下さい。
https://clojure.org/guides/getting_started

TOPに戻る

Clojureのサポート

NRIではお客様のご要望に応じて様々な支援ができるサービスをご用意しました。
詳細は下記ページをご確認ください。

TOPに戻る

OpenStandiaに関する
資料請求・お問い合わせはこちら

  • 資料請求
  • お問い合わせ

※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

  • OpenStandiaサポート対象オープンソース|50種類以上のOSSのサポートをご提供します。
  • 人気midPoint
  • 人気Keycloak
  • 注目MongoDB
  • ForgeRock AM(OpenAM)
  • ForgeRock IDM(OpenIDM)
  • MongoDB
  • Postfix
  • Apache HTTP Server
  • ZABBIX
  • PostgreSQL
  • Apache Struts
  • Apache Kafka
  • Apache Hadoop
  • Apache Spark
  • Spring Framework
  • Apache Tomcat
  • Solr
  • iBATIS
  • DRBD
  • MySQL
  • JBoss
  • Ruby on Rails
  • Jaspersoft
  • OpenLDAP
  • Apache log4j
  • Apache Subversion
  • ForgeRock DS(OpenDJ)
  • Pacemaker
  • Samba
  • Red Hat Enterprise Linux
  • Nginx
  • BIND
  • Dovecot
  • Pentaho
  • sendmail
  • Courier-IMAP
  • ForgeRock DS(OpenDJ)
  • Heartbeat
  • Hibernate
  • Hinemos
  • MyBatis
  • MySQL Cluster
  • Apache Axis2
  • Squid
  • OpenSSO