J'ai le code suivant:
fib n
| n == 0 = 0
| n == 1 = 1
| n > 1 = fib (n-1) + fib (n-2)
print fib 5
Et pour une raison quelconque, cela lance une erreur:
[1 of 1] Compiling Main ( test.hs, test.o )
test.hs:8:1: Parse error: naked expression at top level
Que se passe-t-il?
Vous ne pouvez pas avoir d'expression au niveau supérieur. Le point d'entrée du programme Haskell est une fonction main
dans le module Main
. Aussi print fib 5
appelle print
avec deux arguments, vous devez faire:
main = print $ fib 5
ou
main = print (fib 5)