🍃

[Elm] Dictのkeyにカスタム型を使いたかったらpzp1997/assoc-listのDictを使おう

2022/10/20に公開

document

ElmのcoreライブラリのDictはsingletonやfromListの型を見てわかる通り、comparableなkeyでしか作れない

カスタム型はElmの機能上comparableにできないのでDictにしたいとき困る

type Id = Id String

例えばこういうId型をkeyにしたいとき
解決策としては使う時に剥がしてStringにするという手もあるが、せっかく区別のためにId型を作っているのにめんどくさい

こういうときにassoc-listが使えます
fromList : List ( k, v ) -> Dict k vの型の通りcomparableに限定されません

便利ですね

中身

中身ListでDictのAPIが生えているだけです

はやさ

ちょっと遅いですが大抵の場合データ構造の遅さよりDOM操作のほうが遅いので問題にならないです

Discussion