はじめに
個人的にちょっと分かりにくかったり、忘れそうだと思った部分を書きます。
cf. Elm Syntax
間違い等あったら優しく(易しく)教えてください。
ちょっと試すのにいいところ
文法
文字
シングルクオート'a'
はChar型
ダブルクオート"abc"
はString型
'abc'
はエラーになるけど"a"
はString型になる。
文字の連結は"abc" ++ "de"
(+じゃなくて++)。
リスト
リストは::
によって左側に要素を足すことができる。
1 :: 2 :: 3 :: 4 :: []
= 1 :: 2 :: 3 :: [4]
= 1 :: 2 :: [3, 4]
= 1 :: [2, 3, 4]
= [1, 2, 3, 4]
レコード
record = { x = 0, y = 1, z = 2 }
フィールドへのアクセスは
a = record.x とすると
a = 0 となる。
{ record | x = 6 }とすると
{ x = 6, y = 1, z = 2 } となる。
複数書き換えも可能
{ record | x = 5, y = 7 }
{ x = 5, y = 7, z = 2 } となる。
ここでrecordを見てみると{ x = 0, y = 1, z = 2 }となっており、
元のrecordは書き換わっていなくて別のrecordが作成されるようだ。
record2 = { record | x = 9, z = 4} とすると
recordは { x = 0, y = 1, z = 2 }
record2は { x = 9, y = 1, z = 4 }
case
書き方
rank = 2
case rank of
1 -> "Gold Medal"
2 -> "Silver Medal"
3 -> "Bronze Medal"
_ -> "You Lose..."
上から順に評価される。この場合はrank = 2
なので"Silber Medal"
となる。
1, 2, 3以外の場合は一番下の"You Lose..."
になる。
おわりに
また何かあったら書き足します。