Haskell Error - Naked Expression at Top Level

31,051

You cannot have an expression at the top-level. Haskell program entry point is a main function in Main module. Also print fib 5 calls print with two arguments, you need to do:

main = print $ fib 5

or

main = print (fib 5)
Share:
31,051
tekknolagi
Author by

tekknolagi

(your about me is currently blank) click here to edit

Updated on July 31, 2020

Comments

  • tekknolagi
    tekknolagi almost 4 years

    I have the following code:

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

    And for some reason, it's throwing an error:

    [1 of 1] Compiling Main             ( test.hs, test.o )
    
    test.hs:8:1: Parse error: naked expression at top level
    

    What's going on?