top page > computer > haskell > web_lecture > for_programmer > deriving_read.html
更新日:
文責: 重城良国

構文: deriving Read

はじめに

deriving Showで、自分で定義した型の値を「いい感じに」表示してくれる関数showができる。derivingで指定できるのはShowだけではない。今回はReadを見てみよう。

複数のderiving

derivingで複数の値を指定するには括弧でくくりコンマでくぎる。ShowとReadのふたつを指定するには

data Foo = Bar | Baz deriving (Show, Read)

とする。

Read

deriving Readで、自分で定義した型の値を「いい感じに」読みこんでくれる関数readが使える。関数showで得られた文字列を関数readで読みこむともとの値となる。関数readの返り値は多相的なので型注釈が必要だ。

data Foo = Bar Bool Char | Baz Int Double deriving (Show, Read)

% ghci deriving_read.hs
*Main> show $ Bar False 'c'
"Bar False 'c'"
*Main> read it :: Foo
Bar False 'c'
*Main> show $ Baz 8 5
"Baz 8 5.0"
*Main> read it :: Foo
Baz 8 5.0

まとめ

deriving Readを使えば、「型クラス」を学ぶ前でも、自分で定義した型の値を文字列から読みこめるようになる。

「NML(4): 表示」へもどる 「関数: 簡易的なIO」へ

正当なCSSです! HTML5 Powered with CSS3 / styling, and Semantics