Haskell

【Haskell】データコンストラクタにバリデーションを設ける方法

HaskellでCLIツールを作っているときに, 本記事のタイトルにあるようなことを疑問に思いました. 例えばサイコロを表すデータ型を次のように定義したとしましょう(diceの単数形はdieであることに注意). ここではDieモジュールの中でDie型を定義しています. mo…

HaskellのStateモナドを定義から理解する

本記事の目的 解説 Stateモナドの定義 ひとつの補題 コードを読み解いていく まずは部分的に そして全体へ まとめ 本記事の目的 Stateモナドの挙動を定義から導出したい. それが本記事の目標です. Stateモナドについて調べると, いくつかの記事がヒットしま…