Haskellのshowを再利用
http://d.hatena.ne.jp/hoge1e3/20080128
* 通常はデフォルトのshow を使って
* ある一部のクラスについてはshow をカスタマイズしたい
toStringじゃなくてshowにしてみました。
data Pair = Pair {car::Pair, cdr::Pair} | Null | Value Int instance Show Pair where show (Pair x y) = "(" ++ show x ++ " . " ++ show y ++ ")" show Null = "()" show (Value x) = show x main = putStrLn $ show $ (Pair (Value 1) (Pair (Value 2) Null))
僕もJava使いだったのでなんとなくわかるのですけど、
data Foo ..... deriving Showを
class Foo extends Show
みたいに思うのは間違いで、それに相当するのはどちらかというと
instance Show Foo where ...
なのだと思います。