Sou novo em Haskell e depois de começar ghci
tentei:
f x = 2 * x
e eu obtive:
<interactive>:1:4: parse error on input `='
que eu não entendo.
Estranhamente, funcionou bem antes. Suponho que tenha configurado Haskell incorretamente. Reinstalar o ghc6 não resolve o problema.
Para obter informações, uso o Ubuntu 10.4 e a versão do ghc6 é 6.12.1-12
let
em seus exemplosLYAH
se agora mencionarlet
. Mas um acompanhamento. EmLYAH
eu liaddThree :: Int -> Int -> Int -> Int
(nova linha),addThree x y z = x + y + z
mas apenas o segundoGHCi
comlet
. Por quê?Quando você digita em um arquivo de origem Haskell,
está correto.
Ao digitar diretamente no ghci, você precisa digitar
let
no início da linha:fonte
let
. Pense no GHCi como uma grandelet ... in ...
declaração.Uma boa regra para usar o ghci é que qualquer código inserido deve estar em conformidade com a semântica do-block; ou seja, você pode supor sintaticamente que está programando dentro da mônada IO (se essa for uma terminologia nova, não se preocupe! Recomendo enfaticamente a leitura deste tutorial ).
Essa resposta ilustra esse ponto com um exemplo e pode fornecer mais informações úteis sobre a natureza de IO e ghci.
fonte
let
; Eu estava tipo "wtf, por que eu tenho que usarlet
" e então eu li isso e fui esclarecido.A partir do GHC 8.0.1, isso não geraria mais um erro.
fonte