Подтвердить что ты не робот

Ошибка Haskell - обнаженное выражение на верхнем уровне

У меня есть следующий код:

fib n
    | n == 0  = 0
    | n == 1  = 1
    | n > 1  = fib (n-1) + fib (n-2)

print fib 5

И по какой-то причине он бросает ошибку:

[1 of 1] Compiling Main             ( test.hs, test.o )

test.hs:8:1: Parse error: naked expression at top level

Что происходит?

4b9b3361

Ответ 1

У вас не может быть выражения на верхнем уровне. Точка входа в программу Haskell - это функция main в модуле main. Также print fib 5 вызывает print с двумя аргументами, вам нужно сделать:

main = print $ fib 5

или

main = print (fib 5)