Gepostet: |
Property Methode | ||||||||||
Hallo, also mein Problem ist das folgende: Ich sollte die Funktinen Colour_Is , And, Not, und Wheels implementieren, sowie die Property prop1 Die Funktionen sind implementiert nun soll prop1 so implementiert werden das es das gleiche ergibt wie take 3 cars (die ersten drei autos aus der liste) jedoch habe ich das problem das ich noch kein Oder umgesetzt habe, nun wollte ich das tun jedoch bekomme ich immer den fehler : D:\\Eigene Dateien\\Dropbox\\strategy.hs:26:16: parse error on input `->\' Failed, modules loaded: none. Hier mal der Quelltext: module Blueprint where Wenn ich dann aber mal das Or einfüge kommt oben genannter Fehler : module Blueprint where |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Kann es eventuell einfach an der Einrückung liegen? | |||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Tja gute Frage,... aber es ist ziemlich chaotisch, denn im notepad++ wird es bei mir auch normal angezeigt und nicht so derb weit eingerückt wie hier zB. woran kann das liegen? Welche restriktionen gibt es denn seitens haskell bezüglich leerzeichen, einrückungen , abstätzen etc ?! |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Siehe http://en.wikibooks.org/wiki/Haskell/Indentation Aber wie gesagt, ist nur eine Vermutung. |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Es ist die Einrückung: Vor Or steht bei dir ein Tab, so dass es zwar optisch auf der gleichen Höhe wie And und Not steht, aber nicht logisch. Einfach statt des Tabs Leerzeichen eingeben, und schon geht es . Ganz nebenbei gesagt fände ich diese Form lesbarer:
Und hast du den Fall check (Wheels GT num) car = num < wheels carvergessen, oder soll das so sein? |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Erstmal vielen Dank. Nachdem ich die Einrückung alles ordentlich gemacht habe, ging es dann endlich :DD oh man, was für eine Sprache xD Bisher war das halt nie ein Problem. Nein den Fall habe ich absichtlich nicht. Wir bekommen diese Aufgaben automatisiert gestellt und dürfen dann eigentlich nur die Funktionen vervollständigen die undifined gesetzt wurden. Inzwischen ist mir das klar, darum durfte ich auch die Or Funktion nicht mehr hinzufügen (Das Abgabemodul der HS erlaubt die Abgabe nicht sollte man den Quelltext dann verändern und Methoden/Konstruktoren hinzufügen) Ich habe es dann wie folgt gelöst: module Blueprint where Danke schonmal für eure Hilfe. =) |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Na ja, Haskell kannst du auch mit geschweiften Klammern und Semikolons schreiben, wenn du willst (was z.B. für programm-generierten Code viel bequemer ist, als Leerzeichen zu zählen), und das ist auch die Standardform, die in der Sprachdefinition beschrieben wird. Die Layout-Regeln sind nur dazu da, um Tipparbeit zu sparen, und übersichtlicher sieht es normalerweise auch aus. Dumm ist nur, dass die Fehlermeldungen bei falschem Layout ziemlich verwirrend sein können. Not und And reichen natürlich aus, um die restlichen Logik-Operationen nachzubilden, z.B. nach Herrn de Morgan: a or b = not ((not a) and (not b)) Wenn das vorgegebener Code ist, finde ich ihn schlecht geschrieben. Oder hat das case of einen besonderer pädagogischen Wert? In freier Wildbahn begegnet es einem jedenfalls so gut wie nie. Das Pattern-Matching über Argument-Listen ist zwar auch nur syntaktischer Zucker für ein case of, aber trotzdem deutlich häufiger anzutreffen, und neben Guards eigentlich die Standardform. |
|||||||||||
Zum Seitenanfang | |||||||||||