1

次のデータ構造があるとしましょう:

data Dezi = Dezi1 Int | Dezi2 String | Dezi3 [Dezi] deriving(Show)

class TestInterface a where
    testInt :: a -> Dezi

instance TestInterface Int where
    testInt 0 = Dezi1 0
    testInt _ = Dezi2 "Nie nula"

instance Dezi a =>  TestInterface [a] where 
    testInt xs = Dezi3 $ map (\x -> testInt x) xs

最後のステートメントで、型クラスのジェネリック インスタンスを作成しようとしています。型 'a' は Int または String であると想定していますが、コンパイラは満足していません。

`Dezi' is applied to too many type arguments
In the instance declaration for `TestInterface [a]'

私は初心者で、まだ学習過程にあります。

ありがとう!

4

1 に答える 1