• 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2019-11-09T00:57:48+00:00","default:sagasite","sagasite")
#author("2019-11-09T01:20:52+00:00","default:sagasite","sagasite")
[[Program]] > [[JavaScript]] > [[AltJS]] > [[Elm]] > [[Elmガイド>Elm_guide]] > 言語の基礎

#norelated
#contents

//----------------------------------------
~
*言語の基礎 [#bc154f16]
-言語の基礎 · An Introduction to Elm https://guide.elm-lang.jp/core_language.html
>REPLを使って実際に手を動かしながら読み進めていくと理解しやすいので、インストールが終わったらターミナルでelm replを実行してみてください。

ElmのREPLを使って、文法の基礎を確認していきましょう。
Windowsならコマンドプロンプトで
 elm repl
と入力します。

*値 [#s057cf66]

**文字列 [#m666e6c7]
-文字リテラルは「"」(ダブルクオーテーション)で囲む。
-文字の連結は「++」という演算子を使う。

「+」じゃなくて「++」という別の演算子を用意しているところが良いですね!
-「+」は数値用
-「++」は文字用
という割り切りがある?

**数値 [#vf29fa3a]
>JavaScriptとは異なり、Elmは整数と浮動小数点数を区別します。
ちょうどPython 3と同じように、浮動小数点数の除算(/)と整数の除算(//)の両方が別々に存在します。

-「/」は整数の割算用
-「//」は浮動小数点の割算用

*関数 [#e9ac1d80]
ElmはHaskellっぽい書き方をする、と理解しておけば良いでしょうか?

書式
 関数名 引数 = 関数の本体


 isNegative n = n < 0

**無名関数 [#j57fa41d]
Haskellのラムダ式と同じですね。
ラムダ(λ)の代わりに、バックスラッシュ(¥)を使います。

書式
 \引数 -> 関数の本体


 > \n -> n < 0
 <function>
 
 > (\n -> n < 0) 4
 False

*条件分岐 [#j0f02683]
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を省略することができません。



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS