型と型クラス
9.4 型クラス
class宣言とinstance宣言について
この二つを使いこなせば、ある程度オブジェクト指向プログラミングがHaskellで出来るのではないか?
と思いました。
今後いろいろ遊んでみようかな。
とりあえずこんな感じ。
main = do print tag data Font = Font {aSize :: Int, aColor :: String, aStr :: String} {-- 型FontをShowクラスのインスタンスとして宣言する。 --} instance Show Font where show (Font {aSize = size, aColor = color, aStr = str}) = concat ("Call Font::Show " : ((show size) : ((show color) : (str : [])))) tag :: Font tag = Font 14 "red" "This is font tag."
めちゃめちゃ汚いコードですが、以前作成した型FontをShowクラスのインスタンスにしています。
Showクラスのインスタンスなので、クラスメソッドshowを実装しています。
これでprintしたい時に楽になりますね♪