Home > 一般 > runState が……

runState が……

  • 2019-10-24 (Thu) 21:17
  • 一般

State モナドの runState の返すペアってどっちが値でどっちが状態だっけ? とか思って Hoogle に聞いてみたら,一番上に出てきたのが runState :: State s a -> s -> (s, a) だった.

なるほど,snd で値が取れるのか → 大量のエラーを食らう.そしてしばらくエラーと戦い迷走.

結論:Control.Monad.State のやつは runState :: State s a -> s -> (a, s) でペアが逆だった.Hoogle だと2番目に出てくる.はた迷惑な.よく見ろよとも言う.

歴史的事情なのだろうけど,同じ名前で同じ目的なんだから同じ型にしておいて欲しい.無駄に時間を食った(runState くらい覚えとけとか,そもそも evalState でいいじゃんとか思わなくもないけれど).

★下記に2つの英単語をスペースで区切って入力してください

Home > 一般 > runState が……

Search
Feeds

Page Top