Elmの型
Maybe
Result
List
Listにはそもそもindexアクセスすることができない ref 良いね、境界値チェックの実行時エラーとか起こり得ないんだなmrsekut.icon
これがしたいならArray型を使えとのことらしい
この実装は正しい気がする、逆にHaskellはなんでアクセスできるんだろう #?? list-extraという便利パッケージがある
でも、本来はこれを作る場合はデータ構造をもっと考えたほうが良い場合かも知れない
つまり、正しくプログラミングできていれば、これに頼ることは殆どない(?)
ref 『基礎からわかるElm』.icon p.94
Dict
Set
Array
Listと異なり、任意の要素に素早くアクセスできる
Listの場合は、後ろに行くほどアクセスが遅くなる
getで要素アクセスできる
返り値はMaybeになる。なるほど!!mrsekut.icon
code:elm
import Array
a = Array.initialize 5 identity -- Array.fromList 0,1,2,3,4 Array.get 1 a -- Just 1
Array.get 10 a -- Nothing
制約のある型
Haskellの型クラスの継承のようなやつ
comparable
Int, Float, Char, String
↑これらのリスト、タプル
ex. (>) : comparable -> comparable -> Bool
appendable
値をつなげることができる
String, List a
compappend
値を比較できる
値をつなげることができる
String, List a
ex. (++)
Haskell的に見るとShow型クラスとEq型クラスは全ての型にデフォルトで実装されている
type aliasで型を自作する
code:elm
type alias UserId = Int
type alias User =
{ id : Int
, name: String
}
カスタム型
Haskellのdataみたいなやつ
code:elm
type TF = Red | Yellow | Green
Task
Never
『基礎からわかるElm』.icon p.153
参考