2010-05-19から1日間の記事一覧

IOモナドのリスト

IO Intが100個入っているリストがあるんですが、Intが1の物の個数を調べるにはどうしたらいいのでしょう。こんな関数を作ったらIOなんてデータコンストラクタはないと言われました。 won :: IO Int -> Int -> Bool won (IO x) y = (x == y) The monad laws I…

昨日の続き

ゲームと着手を受け取って、更新した新しいゲームを返す関数と、ゲームを受け取ってゲームが終わったかどうかと誰が勝ったのかを返す関数を作った。 -- ゲームと着手を受け取って、更新した新しいゲームを返す step_game :: Game -> Play -> IO Game step_ga…

モジュール

うまくいかない。これでimport Aとimport Bを切り替えることで挙動が変わります、ってのをやりたかったんだけど「module B where」の冒頭でパーサーエラーだ。 module A where newtype Foo = MakeFoo {foo :: Integer} newtype Bar = MakeBar {bar :: String…

昨日の続き

モジュールに分けてetcはまた先でも出来るだろうからほっといて進もう T3GameとT3Playを作るのはやめて、GameとPlayにした。 -- ゲームの局面を受け取って選択可能な手のリストを返す possible_hands :: Game -> [Play] possible_hands game = [MakePlay i |…