Ich bin sehr neu in Prolog, also nehme an, dass ich sehr wenig Terminologie kenne. Ich benutze Swipl in SWI-Prolog.Prolog: Überprüfen, ob das erste und das letzte Zeichen einer Zeichenkette links und rechts verschnörkelte Klammern sind ('{' & '}')
Ich mag überprüfen, ob eine Zeichenfolge mit einer linken verschnörkelten Klammer beginnt (‚{‘) und endet mit einer rechten verschnörkelten Klammer (‚}‘}
Einig answers, die ich zu Programm führt mich online haben lesen die folgend in meine Wissensbasis zu überprüfen, ob die Zeichenfolge mit einer linken verschnörkelten Klammer beginnen.
start_left_squiggle([Letter|_]):-
Letter = '{'.
Aber wenn ich diese Funktion zu starten, erhalte ich falsch, wenn ich es erwarte wahr zurückzukehren.
?- start_left_squiggle('{hello').
false.
Auch, answers, die scheinen richtig zu prüfen, ob das letzte Zeichen eine quadrige Klammer ist, habe mich dazu gebracht, das folgende zu codieren.
Und ich bekomme wieder falsch beim Ausführen der Funktion, wenn ich erwarte, dass es wahr zurückgibt.
?- end_right_squiggle('hello}').
false.
' 'hallo}'' hier haben Sie nicht zwei geschweifte Klammern am Anfang und Ende, so sollten Sie falsch erhalten . –
@LuaiGhunim Ich führe Tests auf den zwei Funktionen separat durch. Die erste Funktion sollte true zurückgeben, wenn der String mit einem '{' beginnt und die zweite Funktion sollte true zurückgeben, wenn der String mit einem '}' endet. Wofür die Zeichenfolge endet, ist für die erste Funktion irrelevant und für die zweite Funktion ist es irrelevant, womit die Zeichenfolge beginnt. – Jacob
Der einfache Weg besteht darin, die Zeichenfolge in eine Liste umzuwandeln und dann weitere Operationen auszuführen. –