LoginSignup
6
2

More than 3 years have passed since last update.

Elmの予約語一覧

Last updated at Posted at 2020-01-07

ReactでReduxの思想に触れて幾月。
Elmという言語を知れば知る程に学びたい欲が湧き上がってくる今日この頃。

超親切な公式サンプル を元に写経するも、シンプルすぎるシンタックスのために逆に理解が及んでいるか不安がよぎりまくる。

-- ~中略~
view model =
 div [
    [
      button [ onClick Increment ] [ text "+" ],
      div [] [ text (String.fromInt model) ],
      button [ onClick Decrement ] [ text "-" ]
    ]
 ]


「このviewの後の半角スペースは 関数呼び出し&引数引き渡しの記述 だからviewって関数に、modelを引数に取る関数を渡していて…:thinking:

type Msg = Increment | Decrement

「こっちのtypeも関す..:thinking:いや違う、このtypeってのは予約語やんけ」何故関西弁になるのだ・・・🤔
「なるほど、文字通りtypeを定義する予約語っちゅうわけかいな」
2f86293c.jpg

「・・・予約語くらい調べておくか」

という事で

予約語一覧
 →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系統言語では予約語常連なforwhileclassなんかも言語思想的に当然無し。

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2