こちらはClojureの文法のメモになります。
目次
Clojureの特徴
- ClojureはLisp方言の1つです。
- Clojureの構文はシンプルでエレガントであり、Lispの方言であるためS式(式を括弧で囲む)を使用しているため読み書きが容易で保守性が高くなります。
- Clojureは強力なREPL(Read-Eval-Print-Loop)を提供しており、開発中に即座にコードを試行しテストすることができます。
- 動的な型付けを持つ関数型プログラミング言語です。
- Javaプラットフォーム(JVM)上で動作し、Javaのクラスやライブラリを直接使用することができます。
- 可変性の管理やコレクションの処理、マクロの定義などに優れています。
- 不変データ構造の使用により、同時実行処理を容易にしコードの信頼性や安全性を向上させることができます。
- マクロシステムを備えており、自分自身の言語機能を拡張することができます。
- マクロはLispの特徴であり、Clojureではより高度なコントロールフローや言語機能を簡単に実現するために使用されます。
Clojureの起動方法
Windows環境にClojure CLIをインストールするなどを参考に環境を整えてください。
コメント
行末コメント
;
を使います。
;行末までコメント
ブロックコメント
comment
を使います。
(comment ブロックコメント ブロックコメント ブロックコメント )
変数
変数宣言
変数宣言にはdef
キーワードを使います。
(def x 10)
x
という変数に10
という値を割り当てています。
型
整数
(def x 10)
浮動小数点数
(def y 3.14)
有理数(分数)
(def z 22/7)
文字列
(def my-name "佐藤")
- Clojureでは文字列は二重引用符で囲みます。
真偽値
(def is-sunny true)
- Clojureでは真と偽を表すために、
true
とfalse
の2つのキーワードを使用します。
シンボル
(def my-keyword :hello) ; キーワード (def my-symbol 'hello) ; シンボル
- Clojureでは名前を表すために
シンボル
を使用します。 シンボル
はキーワード
や変数
のようなものですが、コードを記述するときに明確な意味を持っています。
コレクション
Clojureでは基本的なデータ型だけでなく、コレクションも使用できます。
リスト
Clojureではリストを表すために、丸括弧で囲まれた要素のシーケンスを使用します。
(def my-list '(1 2 3))
ベクター
ベクターは[...]
構文を使用して作成できます。要素は空白で区切ります。
(def my-vector [1 2 3])
マップ
マップはキーと値のペアを保持することができます。
マップは{...}
構文を使用して作成できます。
(def my-map {:name "Alice", :age 12})
セット
セットは重複を除いた集合を表現します。
セットは#{}
構文を使用して作成できます。要素は空白で区切ります。
(def my-set #{1 2 3 4})
hash-set
関数を使用してセットを作成することもできます。
(def my-set (hash-set 1 2 3 4))