Ich versuche zu lernen, wie Produktionsregeln in Prolog schreiben. Das ist was ich habe.Prolog Grammatik Produktionen
paragraph --> sentence, paragraph ; [].
sentence --> proper_noun, [ ], verb, [ ], preposition, [ ], article, [ ], noun, period.
proper_noun --> [Jimmy] ; [Yancy] ; [Clementine] ; [Astrid].
verb --> [runs] ; [walks] ; [skips] ; [flies].
preposition --> [to] ; [at] ; [around] ; [through].
article --> [the] ; [a].
noun --> [school] ; [house] ; [car] ; [spaceship].
period -->[.].
Ich habe versucht, es zu nennen
phrase(sentence, [Jimmy," ",walks," ",to," ",the," ",school], []), atom_codes(Output,[Jimmy," ",walks," ",to," ",the," ",school]).
mit Es falsch als Ausgabe zurückgegeben. Bitte hilf mir zu verstehen, wo ich falsch gelaufen bin und wie ich bessere Grammatiken schreiben kann.
Hey. Wenn es dir nichts ausmacht, frage ich, wie hilft die Klammer? Und in der Satzproduktion möchte ich auch Räume einbeziehen. Wie würde ich das tun? Und kann ich '|' Anstatt von ';' – InquisitiveCoder
@ BryanD'silva: ja, Klammern erlauben schöne Abkürzungen, Inlining Alternativen. Überlegen Sie, wie elegant der richtige rekursive Absatz // 0 ist. Für die Handhabung von Räumen siehe Bibliothek (dcg/basics). Und du kannst | Anstatt von ; – CapelliC
@CapelliC danke für den Einstieg. :) –