- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Elm_guide_Core-Language へ行く。
- 1 (2019-11-09 (土) 09:57:48)
- 2 (2019-11-09 (土) 10:01:42)
Program > JavaScript > AltJS > Elm > Elmガイド > 言語の基礎
言語の基礎 †
- 言語の基礎 · An Introduction to Elm https://guide.elm-lang.jp/core_language.html
REPLを使って実際に手を動かしながら読み進めていくと理解しやすいので、インストールが終わったらターミナルでelm replを実行してみてください。
ElmのREPLを使って、文法の基礎を確認していきましょう。
Windowsならコマンドプロンプトで
elm repl
と入力します。
値 †
文字列 †
- 文字リテラルは「"」(ダブルクオーテーション)で囲む。
- 文字の連結は「++」という演算子を使う。
「+」じゃなくて「++」という別の演算子を用意しているところが良いですね!
- 「+」は数値用
- 「++」は文字用
という割り切りがある?
数値 †
JavaScriptとは異なり、Elmは整数と浮動小数点数を区別します。
ちょうどPython 3と同じように、浮動小数点数の除算(/)と整数の除算(//)の両方が別々に存在します。
- 「/」は整数の割算用
- 「//」は浮動小数点の割算用
関数 †
ElmはHaskellっぽい書き方をする、と理解しておけば良いでしょうか?
書式
関数名 引数 = 関数の本体
例
isNegative n = n < 0
無名関数 †
Haskellのラムダ式と同じですね。
ラムダ(λ)の代わりに、バックスラッシュ(¥)を使います。
書式
\引数 -> 関数の本体
例
> \n -> n < 0 <function> > (\n -> n < 0) 4 False
条件分岐 †
if式の書式
> if True then "hello" else "world" "hello" > if False then "hello" else "world" "world"
Haskellのifではelseを省略できません。
Elmも同様にifでelseを省略できません。
REPLでif式を書いてthen部分までしか書かないでリターンキーを押すと、続きを入力する状態になります。=続きのelseを求められている?
(参考)
- Elmの関数型的側面の多分ていねいな解説 - Qiita https://qiita.com/A_kirisaki/items/8fa5563a035c8c4d977c
elseは省略できません。
- 構文のほとんどが式でとってもシンプルなプログラミング言語Elm - Qiita https://qiita.com/ababup1192/items/ed93f4a76ba184ddab7f
Elmでは実行時エラーが原則起きません。これは分岐漏れをコンパイラが許さない制約を持つからです。つまりifを書いた際にはelseを省略することができません。