関数型プログラミング言語Haskell Part5
■ このスレッドは過去ログ倉庫に格納されています
0636デフォルトの名無しさん
2006/09/07(木) 19:49:32class Animal a where
call :: a -> String
data Dog = Dog
instance Animal Dog where
call a = "bowwow"
data Sparrow = Sparrow
instance Animal Sparrow where
call a = "cheep"
みたいなのがあって、
animals = [Sparrow, Dog, Sparrow]
main = foldr1 (>>) (map (putStrLn . call) animals)
だとリストの中身の型が統一されていないってエラーになる。
型クラスはJavaのインターフェイスに似てるって「ふつうの」で読んだけど、
DogもSparrowもAnimalなんだから[Animal]のリストに入れられないの?
というかAnimalという型ができるわけじゃないのかな。
自分Java上がりなんだけど、Javaみたいな考え方がHaskellに通用しなくてまいった
■ このスレッドは過去ログ倉庫に格納されています