【blog.hellorusk.net に移行しました】

旧・技術メモ(blog.hellorusk.net に移行しました)

Haskell

Haskellでも非決定性有限オートマトンがしたい!

理学部オートマトン学科に在籍しているので, オートマトンについて勉強させられています. これは決定性有限オートマトンという良いオートマトンです. 各状態と各文字に対して, 状態遷移がちょうど1つだけ定められています. 形もかっこいいですね. これは非決…

Stateモナドでランレングス圧縮

最近Stateモナドを学び始めた. 状態を保持しながら計算を進めたいときに便利のようである. とりあえず, get で状態を取り出し, put で状態を更新し, 最後に return で最終的な値を出すStateモナドを定義(Stateモナドの型は State [保持する状態の型] [最終…

Haskellの型クラス/インスタンスはIQ150を超える

に触発されて, これを Haskell でもやってみようと思った. + をアドホック多相させようという話だ. Python には特殊メソッドを定義する関数があり, + であれば __add__() が対応している, という感じのようだ. Haskell には型クラスとインスタンスというもの…

Haskell の I/O 処理 覚え書き

初学者のメモです. 概要 基本 I/O アクションにまつわる関数①(標準入出力) I/O アクションの組み立て do 記法 (余談)糖衣構文について I/O アクションにまつわる関数②(ファイルシステム) I/O アクションにまつわる関数③(例外処理) その他今回は触れ…