2016-09-05 3 views
1
data MyNum = One 
      | Two 
      | Three 
      deriving (Show, Eq) 

definiere ich gerade MyNum mit Konstruktor lesen One, Two und Three.nicht, einen selbstdefinierte Datentyp

* Haupt>: t Ein

One :: MyNum

Aber GHCI erzeugt Fehler, wenn ich x = read("One")::MyNum zu meinem Programm hinzufügen:

Kein Beispiel für (Lesen MyNum) aus einer Verwendung von 'lesen'

Im Ausdruck: lesen ("One") :: MyNum

In einer Gleichung für ‚x‘: x = read ("One") :: MyNum

Warum nicht kann ich es read?

Antwort

8

Sie haben Read in der Definition von MyNum abzuleiten:

data MyNum = One 
      | Two 
      | Three 
      deriving (Show, Eq, Read) 

x = read("One")::MyNum 

* Haupt> x

One

Verwandte Themen