📝Clojure フォーム

📝Clojure フォーム

📝Clojure Syntax からメモを移植. up: 📂Clojure Core Languages

Clojureフォームとは #

Clojureの構成要素にいろいろ種類がある. Clojureではとくに フォーム という.

  • number
    • 1
  • symbol
    • Clojureの世界での表現されるものはシンボルといってもいい.
    • 関数: foo, bar
    • Javaクラス
    • 名前空間 : user/foo
    • 演算子: +, -
    • etc…
  • string
    • “hoge”
  • keyword
    • :hoge
  • character
    • \h
  • boolean
    • true/false/nil
  • list
    • (1 2 3)

Clojureフォーム間の変換 #

string->number: 文字列から数値への変換 #

Javaの関数を利用する. (int x)みたいなNativeなClojure関数がないことはハマリポイントだったり.

(Integer. "1")
(Integer/parseInt "2")

keyword->string: キーワードから文字列への変換 #

name を使う.

(name :hoge)
;;=> "hoge"

Clojure: 特殊形式 | Special Forms #

Clojureの特殊形式は, Clojureの評価戦略に従わずコンパイラが直接解釈するSyntax.

つまり開発者がマクロで改変できないし, 逆にいればこれらはマクロの素材になる.

refs: clojure.org - Special Forms 🏷Evaluation Strategy

Active Recalls #

Clojureの特殊形式とはなんですか?また具体例はなんですか? #

Clojureのコンパイラが独自に解釈するルール.

Spetial Formsともいう. def, if, let, fnなど.

Clojure の グローバル変数への束縛とローカル変数の束縛をするSyntaxは? #

それぞれ,def, let.