ReactでReduxの思想に触れて幾月。
Elmという言語を知れば知る程に学びたい欲が湧き上がってくる今日この頃。
↓
超親切な公式サンプル を元に写経するも、シンプルすぎるシンタックスのために逆に理解が及んでいるか不安がよぎりまくる。
↓
-- ~中略~
view model =
div [
[
button [ onClick Increment ] [ text "+" ],
div [] [ text (String.fromInt model) ],
button [ onClick Decrement ] [ text "-" ]
]
]
↓
「このview
の後の半角スペースは 関数呼び出し&引数引き渡しの記述 だからview
って関数に、model
を引数に取る関数を渡していて…」
↓
type Msg = Increment | Decrement
↓
「こっちのtype
も関す..いや違う、このtype
ってのは予約語やんけ」何故関西弁になるのだ・・・🤔
「なるほど、文字通りtypeを定義する予約語っちゅうわけかいな」
↓
「・・・予約語くらい調べておくか」
という事で
予約語一覧
→Elmコンパイラの実ソースより引用
reservedWords =
Set.fromList
[ "if", "then", "else"
, "case", "of"
, "let", "in"
, "type"
, "module", "where"
, "import", "exposing"
, "as"
, "port"
]
→Set.fromList
に引き渡されている配列の各要素がElmの予約語になります
→2020/01/26追記 : 上記だけではありませんでした。調べが甘く大変申し訳ありませんでした。 → aliasが抜けていました。上記コンパイラ周辺のソースを見てもaliasの記述場所が分からず、詳しい方がいらしたらご教授頂きたく存じます。(infix等の、バージョンアップに伴い消された予約語もある?)
if then else
case of let
in type module
where import port
exposing as alias
感想
・c系統のメジャーどころな言語と比べると全体的に無駄無くシンプルにまとまっている感じがします。
→c系統言語では予約語常連なfor
やwhile
やclass
なんかも言語思想的に当然無し。