vorherige Seite | 1 2 |
Gepostet: |
|||||||||||
Hallo, das Problem liegt in der Funktion many1 (bei mir kommt jedoch ne andere Fehlermeldung). Dort steht v <- p, was man aber nur bei Monaden verwenden kann. Bei dir gibt es jedoch keine Monaden-Instanz für Parser. Du kannst daher auch die Funktion umformen: many1 :: Parser a -> Parser [a] Dann hätte ich noch eine Bemerkung zur Funktion item. Die parst ein Zeichen vom String, egal welches. Sollte man da nicht noch angeben können, welches Zeichen geparst werden soll? Mit den momentanen Funktionen kann man m.E. noch keinen sinnvollen Parser zusammenbauen. Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Danke für deine Antwort. Kannst du vielleicht noch sagen, wie eine entsprechende Monaden-Instanz für Parser auszusehen hat? Bzw, ob es dafür vielleicht auch einfach einen Zusatz gibt, den man über import x dazuholen kann? So war es z.B. auch bei einer früheren Übung, bei denen Funktionen isDigit, isUpper, etc. einfach vorausgesetzt wurden, wobei aber nicht erwähnt wurde, dass import Char oben noch einzutragen ist. Dort hatte man nur ziemlich schnell gemerkt, dass was fehlt. Naja, wie auch immer. Zu deiner Frage: In der Tat, item parst wirklich jedes beliebige Zeichen von einem nichtleeren String. Du musst bedenken, dass das Thema Parser, Monaden und interaktive Programme noch ganz frisch bei uns ist. Deshalb weiß ich auch bei entsprechenden Fehlern schnell nicht mehr weiter, zumal ich auch meine Probleme mit diesen Lambda-Ausdrücken habe. Es heißt, mit Hilfe von item, failure und returnp können wir uns alle Parser zusammensetzen, die uns auf diesem Niveau interessieren... für dich wahrscheinlich absoluter Urschleim, wie ich annehme. Vielleicht habe ich später aus besagten Grunden ja noch eine Frage. LG |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Kannst du vielleicht noch sagen, wie eine entsprechende Monaden-Instanz für Parser auszusehen hat? Theoretisch so: instance Monad Parser where Allerdings bin ich nicht sicher, ob man für Typsynonyme überhaupt Instanzen angeben kann. Es heißt, mit Hilfe von item, failure und returnp können wir uns alle Parser zusammensetzen Da möchte ich fast das Gegenteil behaupten ;-) Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Könnte man da vielleicht mit dem Befehl newtype was machen? Frag nicht warum, aber ich meine ich hatte das in dem Zusammenhang irgendwo gesehen... Nochmal danke, denn dank deiner Defition für many1 konnte ich jetzt auch andere Parser definieren, die zuvor auch alle in vorherigem Stil definiert wurden. Ich denke, der Parser "sat" ist der, den du meintest. Für den konnte ich vorher zufällig eine andere Definition im Internet finden, denn auch der wurde in diesem "x <- p"-Stil definiert. Zu dem anderen: Ich poste gleich nochmal meine bisherige Parser-Standard-Bibliothek. Item ist denke ich vorhanden aus Gründen der Herleitung und Erklärung, da es der erste Parser war, der überhaupt nach irgendeinem Kriterium entweder scheitert oder erfolgreich ist, und wenn dieses Kriterium nur darin besteht, ob der String leer oder nichtleer ist. Zuvor behandelte Parser waren nämlich nur returnp und failure, bei denen die Eingabe ja völlig belangenlos ist.
Die Bibo ist allerdings noch nicht vollständig, es folgen danach noch Parser zur weiterführenden Behandlung von Leerzeichen und Parser für Algebraische Ausdrücke. LG |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Mit newtype oder data würde es gehen. Allerdings müssten dann auch fast alle anderen Grundfunktionen angepasst werden. Vielleicht gibt's ne Möglichkeit, die Originaldefinition mit type zu behalten und die Monaden-Version von item, aber ich seh grad keine. :-( | |||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
Daten Auslesen | ||||||||||
Hallo Zusammen, vielleicht kann mir bitte jemand helfen, muss aus der <td class=td1 valign=top>Mann, Thomas | |||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Ist da etwas schief gegangen? Oberhalb des ersten Postings wird bei mir ein unformatierter Beitrag angezeigt , ist das deiner, Theo? | |||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo IKT, es ist tatsechlich schiff geagnegen, muss aus der <td class=td1 valign=top>Mann, Thomas | |||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Ich würde gerne versuchen zu helfen, allerdings ist auch der 2. Beitrag irgendwie verstückelt worden. Könntest du deine Beiträge vielleicht hier http://hpaste.org/ oder so nochmal posten und dann verlinken? |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo Nochmals, Vielend Dank dir, hoffe diesmal wird es funktionierren http://hpaste.org/66719 |
|||||||||||
Zum Seitenanfang | |||||||||||
vorherige Seite | 1 2 |