instance Read GameAction where
readProc (x:xs:_) = setGA (read x) (read xs)
をしました。しかし、私はエラー
`readProc' is not a (visible) method of class `Read'
任意のアイデアを得ます?
instance Read GameAction where
readProc (x:xs:_) = setGA (read x) (read xs)
をしました。しかし、私はエラー
`readProc' is not a (visible) method of class `Read'
任意のアイデアを得ます?
まず、次回の質問にもっと役立つ情報と文脈を含めるようにしてください。
第2に、問題が単にタイプミス(readProc
)であるかのように見えますが、Read
タイプの実際のreadPrec
メソッドに対してです。
data GameAction = GameAction (Int, Int) deriving (Show,Eq,Read)
そして、GHCiの中:
ghci> let x = GameAction (5,6)
ghci> (read . show) x == id x
True
だから、そこに行くことは容易に導くことができるよう
第三に、Read
を実装することは、ここでneccesaryではありません。
さらに重要なのは、なぜ手でRead
インスタンスを実装しようとしているのですか? Show
およびRead
は、String
との間でデータ型をエンコード/デコードするためのもので、デバッグ目的でのみ使用してください。自動的に派生したRead
インスタンスが提供するものよりも専門的なものが必要な場合は、おそらくRead
よりも何かを探しているでしょう。 UTF-8文字列をデータ型にパースする場合は、text
ライブラリとattoparsec
ライブラリを組み合わせてください。
ありがとう、それは私がスタックオーバフローで新しいです、私は問題の詳細を含めることを試みる次回のためです。 私は読書を実装する必要があります。なぜなら、機能プログラミング(私たちはゲームをすることになっています。 –
ありがとうございます。エラーについては不明何
instance Read GameAction where
readsPrec _ (x:y:rest) = let board = read [x] :: Int;
cel = read [y] :: Int;
in
if all isDigit [x,y] then
[(setGA board cel, rest)]
else []
readsPrec _ _ = []
をたどるよう
私は私の問題を解決するだろうか? – melpomene
それを修正する方法、私はこのインスタンスを正しく実装していません –
1.エラーメッセージを読んでください。 2.エラーメッセージを理解する。 3.エラーを修正します。 – melpomene