- Elm Advent Calendar 2016 - Adventar 2日目
- Elmの勉強の記録
- 今回は読書ノート
"Elm in Action"、 ch.1 "Welcome to Elm"
- Richard Feldman, Elm in Action MEAP V03, pp.1-27
- Richard is...
- NoRedInk のエンジニアで
- Elmの世界でEvangelist的な人
- NoRedInk is...
- 2012年創業の教育系スタートアップ
- chibicodeさんの2012年の連載記事でさらっと紹介されてる
- 2016年にEvanもJoin
- フロントエンドはElmで書き直され、前にpodcastで話してたときは、35,000行規模のElmコードベース
- 2012年創業の教育系スタートアップ
以下この章読んで学んだこと
- 本の最初のリリース(V01)が出た時点でざっくり読んでる(結構忘れてるが)。今回再読して学んだことなど
richardがelm試して心奪われたポイント
- reactベースのアプリを見よう見まねで書き直し
- コンパイラに導かれて書き換えていった
- リファクタしてるときに一気に心奪われた
elmが向いてるプロジェクト、向いてないプロジェクト
ポジショントーク成分薄めでよい
- 向かない
- 納期あってスケジュールタイトなやつ
- プロトタイプ作り(長期間メンテしないプロジェクト)
- 慣れてる言語でやる方が適切
- 既存のパッケージ、ソリューションの合体させる系のプロジェクト
- 向いてる
- 長期間育て、コードベースの規模がどんどん大きくなるプロジェクト
会社でElm導入してどうなったか
- フロントエンジニアは今が一番ハッピー
- テストスイートも小さくなった
- プロダクトの信頼性はアップした
string literal とcharacter literalの違い
- stringは文字数ゼロ
""
でも、1文字"x”
でもok - characterは常に1文字じゃないとエラー
elmにはearly returnがない
そもそもreturn
がないのだが、そこの説明がよかった
- jsでみかける
if(!str) return;
というのが存在しない - Elmは全てが式。アプリも巨大な式
-
if...else
も、Elmでは式
-
- 式は評価されると1つの値(多値はない)を返す
early return多用したjsコードをelmで書き直すコツ
-
return
がないElmでどうやって書き直す? - 関数の中でreturnを1回だけ使うように書き直す
- ternariesをうまく使う
- これでうまくいかない場合もあるだろうけど、
「Elmでは演算子も関数」ということがわかる事例
- 演算子のサンプルでみかける
"hello" ++ "elm"
とか- これは、関数の中置記法(infix style)をつかってるだけ
- 関数なので前置記法(prefix style)が当然できる
- prefix styleで書くときは、カッコ
( )
で演算子を囲む必要がある
- prefix styleで書くときは、カッコ
演算子++
と==
の優先順位
図がよい
constants
- 小文字始まり(しないとエラーになる)
- 界隈の作法(エラーにはならない)
- sequenceであること
- スネークケース使わなず、キャメルケースつかうべし
- sequenceであること
REPLのtips
- 改行したいとき
- replでの改行はバックスラッシュとインデントをつかえばok
- ただし、REPLのインデントでは、spaceだけ
let式でスコープ
- let、インデント、in
無名関数
- バックスラッシュ始まり\
コレクション
- List, Record, タプル
- Listは linked list
- List vs Array
- パフォーマンス上の理由でArrayよりもListがつかわれる
- ch.10でくわしくと書かれて説明なかった
- Record
- フィールドへのアクセスはドットのみ