as_capabl
パーサのデバッグのイケてる方法、存在するならぜひ誰かにレクチャーして欲しい……
* パーサのデバッグ
* グラフ構造の探索など、コントロールフローが複雑な関数群のデバッグ
* notogawa さんがおっしゃってるようなパフォーマンスの改善時のデバッグ
で printf デバッグをする際、trace が出ない原因の切り分けが、遅延評価だからなのかコードのバグなのか分からないのは、だいぶ辛いというのが経験則としてあります
traceM
を putStrLn
の代わりに使えば割とどうにかなってますね。 :thinking_face:traceShowId <$>
と書いたり。type Hoge a b c = Either (Either a b) c
Left (Right x) -> ...
data Val = E1 | E2 | R
data Err = E1 | E2 data R = R type Val = Either Err R
{E1} * {R} = {E1} {E1} * {E2} = {E1, E2}
e a b = Either a b
read
が失敗した時謎の場所で実行時エラーになってreadが原因だとしばらく気が付かなかったことはありますねreadMaybe
使えば良いんですけどe a b = either a b //either の頭文字が小文字