関数型プログラミング言語Haskell Part5
■ このスレッドは過去ログ倉庫に格納されています
0654デフォルトの名無しさん
2006/09/09(土) 09:13:35>>649のAnimalはインタフェースを表現する型であって、
個々の動物の構造を反映するものじゃない。
「飛行高度」のフィールドをAnimalインタフェースを介してのみ
使う(飛行高度によって鳴き声が異なる、とか)なら
sparrow :: Height -> Animal
を用意するだけで十分だし、専用のインタフェースから使いたいなら、
data Sparrow = {- 専用インタフェース -}
sparrowAsAnimal :: Sparrow -> Animal
で良く、いずれにしてもAnimalの変更は必要ない。
ただし、後者の場合は、>>649に書いたように
型クラスを使ったほうが便利かもしれないけど。
■ このスレッドは過去ログ倉庫に格納されています