Haskellのモジュールがよくわからない日記
= 予算は無事使い切れそう。 あまったらLANケーブルとかOAタップとか買おうと思っていたけど、 秘書さんが文具を買うというので面倒だから任せることにした。 自分のお金じゃないので気前がいい。
= ITmedia Biz.ID:理想のファイル名の付け方
どうやらWindows XPでは、すべて英数字のファイル名だと1行表示だが、2バイト文字や半角スペースなどが含まれているとファイル名が2行表示されるようだ。しかも、頭が英数字で始まり途中から2バイト文字が入っていると、2行目は2バイト文字から表示されるという仕掛けになっている。ほー。それは知らなかった。
= リアルなチューリングマシンを作りたくなってしまった。
夏のプロシンでなにか発表しろといわれているので、 たぶんそこでこの発言の真意が明らかになります(ぉ)
= Haskellは封印しよう。 とりあえず「ふつうのHaskell」を見えないところにしまった。 あとモジュールの宣言の仕方はわかったけど、 そのモジュールをどうすれば他のコードからインポートできるのかがよくわからなかった。 とりあえずそれらしきフォルダにほりこもうか と思ったら、標準ライブラリは*.hiとかいうバイナリになっていた。
それから、自分で作ったRealっていう型に変換するために i2r :: Integer -> Realと q2r :: Rational -> Realを作り、 名前を使い分けるのが面倒なので下のようにしたら、 Rationalの所だけエラー。type Rational = Ratio Integerなのが関係しているのか? よくわからない。
class Realizable a where toReal :: a -> Real instance Realizable Integer where toReal = i2r instance Realizable Real where toReal = id instance Realizable Rational where toReal = q2r
Illegal instance declaration for `Realizable Rational'
(The instance type must be of form (T a b c)
where T is not a synonym, and a,b,c are distinct type variables)
In the instance declaration for `Realizable Rational'