Soy nuevo en Haskell y después de comenzar ghci
probé:
f x = 2 * x
y obtuve:
<interactive>:1:4: parse error on input `='
que no entiendo.
Curiosamente, funcionó bien antes. Supongo que he hecho un Haskell mal configurado. Reinstalar ghc6 no resuelve el problema.
Para obtener información, uso Ubuntu 10.4 y la versión de ghc6 es 6.12.1-12
let
en sus ejemplosLYAH
qué ahora mencionanlet
. Pero un seguimiento. EnLYAH
leíaddThree :: Int -> Int -> Int -> Int
(nueva línea)addThree x y z = x + y + z
pero solo el segundo se ejecutaGHCi
conlet
. ¿Por qué?Cuando escribe en un archivo fuente de Haskell,
es correcto.
Cuando escribe directamente en ghci, debe escribir
let
al principio de la línea:fuente
let
. Piense en GHCi como una granlet ... in ...
declaración.Una buena regla general para usar ghci es que cualquier código que ingrese debe ajustarse a la semántica de do-block; es decir, podría asumir sintácticamente que está programando dentro de la mónada IO (si esta es una terminología nueva, no se preocupe, le recomiendo leer este tutorial ).
Esta respuesta ilustra este punto con un ejemplo y puede proporcionar más información práctica sobre la naturaleza de IO y ghci.
fuente
let
; Yo estaba como "wtf, por qué tengo que usarlet
" y luego leí esto y me iluminé.A partir de GHC 8.0.1, esto ya no generaría un error.
fuente