2

値を指定して、この値のコンストラクターの数を計算するメソッドを使用して、型クラス Size を作成したいと考えています。

class Size a where
  size :: a -> Int

instance Size Int where
  size a = 1

instance Size Bool where
  size b = 1

instance Size (c,d) where
  size (c,d) = 1 + Size c + Size d

example4 :: (Bool,(Int,Bool))
example4 = (True,(3,False))
main :: IO ()    
main = do
  print (size example4)

値 5 が返されるはずですが、エラー Message が表示されますNot in scope: data constructor `Size'

Size IntインスタンスでorSize Boolを使用したいのですSize(c,d)が、方法がわかりません。

私の問題は、私が Haskell にかなり慣れていないため、どうすれば修正できるかわからないことです。

4

1 に答える 1