Ich bin neu bei Haskell und ich möchte in der Lage sein, einen neuen Typ, so dass ich sagen kann, was ist, aber ich muss es auch aus einer Zeichenfolge lesen. Ich habeHaskell Instanz lesen für newtype das ist nur ein int
newtype SpecialId Int
deriving (Eq, Ord, Show)
ich read "5" :: SpecialId
in der Lage sein wollen, wenn ich lesen in der newtype ableiten funktioniert es nicht funktioniert es nur auf read "SpecialId 5" :: SpecialId
. Ich habe
instance Read SpecialId where
readsPrec _ s = read s
Aber das gibt mir
SpecialId *** Exception: Prelude.read: no parse
Sie fragen Haskell, dass 'lesen', liest ein' [(SpecialId, String)] ', und dies schlägt fehl, da es nicht mit einem '' ['' char beginnt. –
Ihre Syntax zum Definieren des neuen Typs ist falsch; es sollte 'newtype SpecialId = SpecialId Int abgeleitet werden (Eq, Ord, Show)'. – chepner