📝Clojure Syntax からメモを移植. up: 📂Clojure Core Languages
Clojureフォームとは
Clojureの構成要素にいろいろ種類がある. Clojureではとくに フォーム という.
- symbol
- Clojureの世界での表現されるものはシンボルといってもいい.
- 関数: foo, bar
- Javaクラス
- 名前空間 : user/foo
- 演算子: +, -
- etc…
- number: 📝Clojure Number
- 1
- string: 📝Clojure String
- “hoge”
- keyword
- :hoge
- character
- \h
- boolean: 📝Clojure Logics
- true/false/nil
- list
- (1 2 3)
Clojureフォーム間の変換
string->number: 文字列から数値への変換
Javaの関数を利用する. (int x)みたいなNativeなClojure関数がないことはハマリポイントだったり.
(Integer. "1")
(Integer/parseInt "2")
(Long/parseLong "1666956310000")
updated: read-stringならIntegerもDoubleも両方いける.
keyword->string: キーワードから文字列への変換
name を使う.
(name :hoge)
;;=> "hoge"
strをつかっても :hogeは”:hoge”に変換されてしまう, 注意💡
Clojure: 特殊形式 | Special Forms
Clojureの特殊形式は, Clojureの評価戦略に従わずコンパイラが直接解釈するSyntax.
つまり開発者がマクロで改変できないし, 逆にいればこれらはマクロの素材になる.
refs: clojure.org - Special Forms 🔖Evaluation Strategy
フォームTopics
Active Recalls
Clojureの特殊形式とはなんですか?また具体例はなんですか?
Clojureのコンパイラが独自に解釈するルール.
Spetial Formsともいう. def, if, let, fnなど.
Clojure の グローバル変数への束縛とローカル変数の束縛をするSyntaxは?
それぞれ,def, let.