Haskell erreur parse error sur l'entrée `='
je suis nouveau à Haskell et après avoir commencé ghci
j'ai essayé:
f x = 2 * x
et j'ai obtenu:
<interactive>:1:4: parse error on input `='
que je ne comprends pas.
étrangement, ça marchait bien avant. Je suppose que J'ai mal fait Haskell. Réinstaller ghc6 ne résout pas le problème.
pour information, J'utilise Ubuntu 10.4 et la version de ghc6 est 6.12.1-12
4 réponses
Dans GHCi 7.x ou ci-dessous, vous avez besoin d'un let
définir les choses.
Prelude> let f x = x * 2
Prelude> f 4
8
à partir de GHC 8.0.1, les fixations de haut niveau sont supportées dans GHCi , donc le code de OP fonctionnera sans changement.
GHCi, version 8.0.1.20161213: http://www.haskell.org/ghc/ :? for help
Prelude> f x = x * 2
Prelude> f 4
8
quand vous tapez dans un fichier source Haskell,
f x = 2 * x
est correct.
Lorsque vous tapez directement dans ghci, vous devez taper let
au début de la ligne:
let f x = 2 * x
une bonne règle empirique pour utiliser ghci est que tout code que vous entrez doit être conforme à la sémantique de Do-block; c'est-à-dire que vous pouvez supposer syntaxiquement que vous programmez dans la monade IO (si c'est une nouvelle terminologie, ne vous inquiétez pas! Je recommande vivement la lecture de ce tutoriel ).
cette réponse illustre ce point à l'aide d'un exemple, et peut fournir un aperçu plus pratique de la la nature de IO et ghci.