Ich bin neu in Haskell und habe nach dem Start ghci
versucht:
f x = 2 * x
und ich erhielt:
<interactive>:1:4: parse error on input `='
was ich nicht verstehe.
Seltsamerweise hat es vorher gut funktioniert. Ich nehme an, dass ich Haskell falsch konfiguriert habe. Die Neuinstallation von ghc6 löst das Problem nicht.
Zur Information benutze ich Ubuntu 10.4 und die Version von ghc6 ist 6.12.1-12
let
in seinen BeispielenLYAH
erwähnt jetztlet
. Aber ein Follow-up. InLYAH
lese ichaddThree :: Int -> Int -> Int -> Int
(Zeilenumbruch)addThree x y z = x + y + z
aber nur der zweite läuftGHCi
mitlet
. Warum?Wenn Sie in eine Haskell-Quelldatei eingeben,
ist richtig.
Wenn Sie direkt in ghci eingeben, müssen Sie
let
am Anfang der Zeile Folgendes eingeben :quelle
let
. Stellen Sie sich GHCi als eine großelet ... in ...
Aussage vor.Eine gute Faustregel für die Verwendung von ghci ist, dass jeder von Ihnen eingegebene Code der Do-Block-Semantik entsprechen sollte. Das heißt, Sie könnten syntaktisch davon ausgehen, dass Sie innerhalb der E / A-Monade programmieren (wenn dies eine neue Terminologie ist, machen Sie sich keine Sorgen! Ich würde dringend empfehlen, dieses Tutorial durchzulesen ).
Diese Antwort veranschaulicht diesen Punkt anhand eines Beispiels und bietet möglicherweise einen besseren Einblick in die Natur von IO und ghci.
quelle
let
. Ich war wie "wtf, warum muss ich verwendenlet
" und dann las ich dies und wurde erleuchtet.Ab GHC 8.0.1 würde dies keinen Fehler mehr erzeugen.
quelle