Closed10
JuliaのBase.hashを理解する
-
Base.hash
がどのように使われているか - 自分で定義した型に対してhashにどのようなメソッドを定義するべきか
- hashが被ったときに問題はあるのか
- hashの定義を支援するようなパッケージにはどのようなものがあるのか
いい感じにまとまったら記事にしてadvent calendarのネタにする
-
Base.hash
がどのように使われているか-
Base.unique
で使われてる
-
- 自分で定義した型に対してhashにどのようなメソッドを定義するべきか
-
Base.isequal(a,b)
⇒hash(a) == hash(b)
になるようにする
-
- hashが被ったときに問題はあるのか
- 高速化が損なわれることがあるが、基本的には問題ない。
- つまり
hash(a) == hash(b)
⇒Base.isequal(a,b)
は一般的には成立しなくてOK
- hashの定義を支援するようなパッケージにはどのようなものがあるのか
Complex
のためのhash計算例
TODOコメントが少し謎だが、https://github.com/JuliaLang/julia/pull/11274/files#diff-e41e6420fa56749ce528b57eb01ebec81a484488511a96466dd9319a4f19fb0eR95 の頃からある
HalfInteger
のためのhash計算例
Quaternions.jlには修正のPR投げた
BasicBSpline.jlの修正PRも投げた
BasicBSpline.jlの方はmergeした
antimon2さんの記事に感謝!
このスクラップは2023/11/14にクローズされました