Ich kann den Fehler nicht reproduzieren, den Sie behaupten, dass Sie erhalten. Wenn Sie diesen Code in eine Datei schreiben und Kompilieren mit ghc
der Fehler ist:
<filename>.hs:2:38: parse error on input ‘=’
Und das Problem ist, dass die Syntax für where
falsch ist. Entweder schreiben:
an_expression where z = x+y
Oder Sie haben geschweiften Klammern verwenden:
an_expression where {z=x+y;}
Sie nicht Klammer Gruppe einen Auftrag verwenden können.
Beachten Sie, dass, wenn in GHCI Schreiben müssen Sie Gruppe zusammen, um die Erklärungen und eine let
verwenden Funktionen zu definieren:
Prelude> let {addConcat :: [Int] -> [Int]; addConcat [x,y] = [z,z+y] where z=x+y;}
Prelude> addConcat [1,2]
[3,5]
Beachten Sie auch, dass selbst Festsetzung dieser Ihre Funktion hat, da das zweite Argument einen Typfehler noch von :
muss eine Liste sein, während z+y
eine Nummer ist. Sie wollen z:[z+y]
oder einfacher [z, z+y]
.
Vielen Dank !! die Sache mit der geschweiften Klammer hat perfekt funktioniert! Du bist unglaublich! – thelili018