Gepostet: |
Haskell und Markov | ||||||||||
Hi, Bin neu hier, und muss gezwungener Maßen im Moment Haskell lernen, allerdings hapert es da vorne und hinten. Nun wurde mir folgende Aufgabe gestellt: Ich soll ein Haskell Programm schreiben, in welchem ich in der Eingabe zuerst die Regeln eingebe, und dann eine Zeichenkettel, auf die diese Regeln angewendet werden sollen, als Beispiel: markov [("ab","ba"),("ba",""),("",".")] "babaa" beschreibt die Anwendung der Regeln: ab = ba ba =€ €=. Kann mir jemand erklären, wie ich so etwas angehen kann? Danke schonmal... |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Hallo Metti, willkommen im Forum! Kannst du nochmal genauer erklären, wie die Ersetzung vonstatten gehen soll? Soll immer nur eine Regel angewendet werden? Oder können beliebig viele Regeln gleichzeitig angewendet werden? Oder sollen alle möglichen Resultatworte durch alle möglichen Ersetzungen berechnet werden? In deinem Beispiel könnte man z.B. 2x ("ba", "") anwenden oder nur 1x ("ab","ba"), und prinzipiell unendlich oft die Regel ("","."). Viele Grüße, Siracusa |
|||||||||||
Zum Seitenanfang | |||||||||||
Gepostet: |
|||||||||||
Regeln sind immer von links nach rechts anzuwenden. Regeln mit einem Punkt sind haltende Regeln in denen das Programm endet. "babaa" : ("ab","ba") -> "bbaaa" "bbaaa" : ("ba","") -> "baa" "baa" : ("ba","") -> "b" "b" : ("",".")-> "b" *ENDE* |
|||||||||||
Zum Seitenanfang | |||||||||||