私はこのタイプの定義を持っています:
data Operace = Op (Int->Int->Int) String (Int->Int->Int) deriving Show
このタイプをインタラクティブシェル(GHCi)に出力したい。印刷する必要があるのは、String
フィールドだけです。
私はこれを試しました:
instance Show Operace where
show (Op op str inv) = show str
しかし、私はまだ得続けています
No instance for (Show (Int -> Int -> Int))
arising from the 'deriving' clause of a data type declaration
Possible fix:
add an instance declaration for (Show (Int -> Int -> Int))
or use a standalone 'deriving instance' declaration,
so you can specify the instance context yourself
When deriving the instance for (Show Operace)
(Int->Int->Int)
にShow
を追加したくないので、出力したいのは文字列だけです。
手伝ってくれてありがとう!
編集:
将来の参考のために、修正バージョンは次のとおりです。
data Operace = Op (Int->Int->Int) String (Int->Int->Int)
instance Show Operace where
show (Op _ str _) = str
作成したインスタンス宣言は正しい方法です。元のderiving
宣言から誤ったdata
句を削除するのを忘れたようです。
data Operace = Op (Int->Int->Int) String (Int->Int->Int)
instance Show Operace where
show (Op op str inv) = show str
Show
を派生させることができます。インポートするだけText.Show.Functions
最初。