2011-10-06 53 views
0

这段代码有什么问题?试图做一个基本的哈斯克尔问候世界。Haskell hello world will not compile

module Main 
(hello) 
where 

hello :: [Char] -> [Char] 
hello p = "Hello " ++ p ++ "!" 

main = 
    let msg = hello "World" 
    putStrLn msg 

回答

8

你缺少一个do

main = do 
    let msg = hello "World" 
    putStrLn msg 

您还需要导出main

module Main (main) where 

因为这是主要的模块,没有必要出口hello

+1

或者,离不开:'主= putStrLn(你好 “世界”)' –

+0

或'主要= $ putStrLn你好 “世界”' – pat

+1

或'主要= (putStrLn。hello)“World”' – Ingo

7

你缺少一个in

main = let msg = hello "World" in putStrLn msg 
+2

+1不使用'do'! – pat