いきなりですが、やっぱりHaskellでもデバッグプリントしたいですよね。調べた結果、Debug.Traceにある関数traceを使えばできることがわかりました。おお、副作用が… 実装はきっと暗黒面なんだろうな(キレイな身体じゃ生きられない、みたいな)。 そのまま使ってもいいんですが、せっかくなんでRubyっぽく関数pを定義してみました。 ファイル: a.hs module Main (main) where import Debug.Trace (trace) p :: (Show a) => a -> a p = p' "" p' :: (Show a) => String -> a -> a p' s a = trace (s ++ show a) a inc :: Int -> Int inc i = i + 1 main :: IO () main = print $ p $ i