Ich bin ziemlich neu in Haskell und heute habe ich versucht, einen Taschenrechner mit Haskell (wie die meisten Leute machen beim Erlernen einer neuen Sprache, um die Aussage zu halten) und ich hatte Problem, wenn Werte mit Zeichenfolgen verwendet werden. Ich möchte überprüfen, ob die Zeichenfolge, die der Benutzer schrieb, "plus" ist (ohne ""), aber wenn ich nicht die Anführungszeichen (so würde es wie if op == plus
aussehen) es nicht als eine Zeichenfolge erkennt und einen Fehler ausgibt aber wenn ich andererseits die Anführungszeichen verwende (so würde es so aussehen if op == "plus"
), dann sucht es nach der Zeichenfolge "plus" mit den Anführungszeichen, wie kann ich eine Zeichenfolge mit einem Wert ohne Anführungszeichen vergleichen?Wie man die Zeichenkette mit dem Wert ohne Anführungszeichen vergleicht
Fall 1:
calculate x op y = do
if op == "plus"
then x+y
else x
Ergebnis: Das Programm sucht nach „plus“ beim Aufruf der Funktion und somit, wenn der Eingang beim Aufruf der Funktion zum Beispiel „1 plus 3“ wird es einen Fehler geben von ‚: 67: 13: Fehler: Variable in ihrem Umfang nicht: plus :: [Char]
Fall 2:
calculate x op y = do
if op == plus
then x+y
else x
Ergebnis: bei dem Versuch, das Programm, das ich den Fehler„test.hs erhalten zu laden : 2: 33: Fehler: Variable nicht in scope: plus Fehlgeschlagen, Module geladen: keine. ", so kann ich die Funktion offensichtlich nicht aufrufen.
Bitte teilen Sie die [MCVE]. – bereal
Zusätzlich zu @ bereals Notiz, Welcome to Stack Overflow! Ich sehe, du hast die [Tour] bereits gemacht, also werde ich dich einfach mit der [Hilfe] und auch mit dem Artikel auf [ask] verlinken. – Delioth
@bereal Hinzugefügt in den Beitrag Delioth Vielen Dank für Ihre Hilfe und freundliche Haltung, werde ich sicher sein, es zu lesen – OreOS