J'ai commencé avec Haskell aujourd'hui et toutes les fonctions que j'exécute sur ghci affichent ce message. Je veux juste savoir pourquoi cela se produit. Je sais qu'il y a beaucoup de questions à ce sujet, mais c'est un cas simple et j'ai besoin de comprendre cette erreur au début
function3 :: Int -> [Int]
function3 x = [a | a <- [1..x] mod a x == 0]
Une erreur s'est-elle produite lorsque vous tapez le type de fonction dans GHCi?
$ ghci
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Prelude> function3 :: Int -> [Int]
<interactive>:1:1: error:
Variable not in scope: function3 :: Int -> [Int]
Prelude>
Si c'est le cas, vous devez utiliser plusieurs entrées de ligne
Prelude> :{
Prelude| function3 :: Int -> [Int]
Prelude| function3 x = [a | a <- [1..x], mod a x == 0]
Prelude| :}
Et noté ,
avant mod
Alternativement, pour un meilleur flux de travail, vous pouvez enregistrer votre code dans un fichier et le charger dans GHCi en utilisant : load
$ cat tmp/functions.hs
function3 :: Int -> [Int]
function3 x = [a | a <- [1..x], mod a x == 0]
$ ghci
GHCi, version 8.0.1: http://www.haskell.org/ghc/ :? for help
Prelude> :l tmp/functions.hs
[1 of 1] Compiling Main ( tmp/functions.hs, interpreted )
Ok, modules loaded: Main.
*Main> :t function3
function3 :: Int -> [Int]
*Main>