Gepostet: |
Haskell Datentyp | ||||||||||
Hallo, ich soll einen Datentyp Expression deklarieren der folgende Konstruktoren hat: 1. Es soll ein String eingegeben werden (Variable) 2. Es soll eine Int-Zahl eingegeben werden können (Konstante) 3. die üblichen Verknüpfungen (Summe, Differenz, Produkt und Quotient) Mein Anfang: data Expression a = String a | Int a | Expression a + Expression a ... Das funktioniert so aber leider nicht, hat jemand einen tipp? Danke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Erstmal Sorry wegen deiner vielen Posts, aber das liegt einfach nur an dem buggy-Forum... also brauchst dir keine Sorgen machen. Und Jacke kümmert sich auch gleich um dein Problem. |
|||||||||||
Zum Seitenanfang | Homepage ICQ | ||||||||||
Gepostet: |
|||||||||||
also ich würde es folgendermaßen machen data Expr = Lit Int| Var Var | Op Ops Expr Expr data Ops = Add | Sub | Mul | Div type Var = Char gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
Weiteres Problem | ||||||||||
Hallo, nun soll ich eine exprToSTring schreiben, die aus einer expression einen String generiert (zum ausgeben) Ich habe die Funktion show und den "++"-Infix zur verfügung. Wie soll ich das machen? PS: Habt ihr nen link zu nem guten Haskell-Tutorium oder evtl. ne Buchempfehlung? Danke! |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
es gibt leider keinen deutschen tutorials...und ich komm im moment mit dem hier auf der seite nich voran...studieren hält einen ganz schön auf trab... als buch kann ich dir: "Einführung in die Programmierung mit Haskell von Manuel Chakravarty, Gabriele Keller" empfehlen auf der hugs seite gibts nen ganz gutes tutorial (in englisch) also und nun zu deiner frage: ich geh mal davon aus das sich um einen nummerische expr handelt für alle anderen fälle funktioniert es aber analog dazu data Expr= Lit Int | Add Expr Expr | Sub Expr Expr show::Expr-> String show (Lit n)= show n show (Add e1 e2)="("++show e1++"+"++show e2++")" show (Sub e1 e2)="("++show e1++"-"++show e2++")" und nun zur nächsten frage gruß jacke |
|||||||||||
Zum Seitenanfang | |||||||||||