- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Elm_guide_Custom-Types へ行く。
- 1 (2019-11-15 (金) 22:03:53)
- 2 (2019-11-15 (金) 22:03:53)
- 3 (2019-11-15 (金) 22:03:53)
Program > JavaScript > AltJS > Elm > Elmガイド > 型 > カスタム型
カスタム型 †
- カスタム型 · An Introduction to Elm https://guide.elm-lang.jp/types/custom_types.html
一応読んだけど、そういうもんだという表面的な理解しか得られていない。
いまいちよく理解できていない。うまく言語化できないけど、モヤモヤが残るかんじ。
Elm本もパラレル読みして、もう少し掘り下げないといけない。
型の設計 †
ある状況を非常に厳密に表現し始めるのにカスタム型は極めて強力です。
例えばもし何かデータをロードされるのを待っているとしたら、その状況をこのようにカスタム型で表現したいかもしれません:
1 2 3 4type Profile = Failure | Loading | Success { name : String, description : String }
Profile のデータの状態をLoadingから始めて、フェッチに失敗したらFailure、成功したらSuccessというように何が起こったかに応じて状態を遷移させることができます。
このような設計はview関数を書くのを本当にシンプルにします。
データの状態がカスタム型で表現されているのでview関数はデータをロードしているときも常に妥当な見た目を表示することができます。
Note: カスタム型は Elm で最も重要な機能です。
特に一度でもより厳密にシナリオを設計しようとする習慣を持てば、カスタム型に非常に深みを感じるでしょう。
わたしはこの深みを付録の「集合としての型」や「型のビット表現」で共有しようと試みています。
うーん、型は状態を表す仕組みとしても使えるんだな?
これはどういうことなのか?と常に頭の片隅に置きながら、さらにElmガイドを読み進めてみよう。