Haskellで配列が使いたくなったので,Data.Arrayを使ってみる.
諸事情で,ArrayのindexにはCIntを使いたかったのですが,CIntはIxクラスのインスタンスじゃないようです.
仕方がないので,自分でIxクラスのインスタンス宣言を書く事に.
rangeとinRangeの宣言を書いたら,warningが出なくなったので安心していたら,実行時にエラーも吐かずに止まります.
indexの宣言も書いたらうまくいきました.自動導出でうまくいかなかったのでしょうか? よく分かりません.
・Haskell/小ネタ
instance Ix CInt where range (m,n) = [m..n] inRange (m,n) i = m <= i && i <= n index b@(m,n) i | inRange b i = fromIntegral (i - m) | otherwise = error \"Ix.index: Index out of range.\"
やってた事
・Telnetでライフゲーム
Telnetでワールドカップに触発されました^^;