putStrLn看到太多的参数haskell

1 io haskell

我有一个putStrLn,它在下一行看到一个函数,因此没有正确编译.

if director == "" then
        putStrLn "Please enter a directors name"
        startFunctional 5 userName database --This line is seen as an argument for the putStrLn
    else do
        *etc*
Run Code Online (Sandbox Code Playgroud)

我试图使用括号来隔离字符串,但这会引发相同的错误.

错误信息:

The function `putStrLn' is applied to five arguments, but its type `String -> IO ()' has only one
Run Code Online (Sandbox Code Playgroud)

Ben*_*esh 6

你有可能错过一个do街区吗?

if director == "" 
then do
    putStrLn "Please enter a directors name"
    startFunctional 5 userName database
else do
    *etc*
Run Code Online (Sandbox Code Playgroud)

另外,尽量对准then以及else一个关键词的if块.