模块主要出错

时间:2014-02-24 03:09:58

标签: haskell

你好我正在用haskell做一个程序,需要做类似的事情:

expo :: String -> String
expo "stuff" = " Doing something "

main = do 
  expo "stuff" 

但是当我尝试运行时,会发生这种情况:

Couldn't match expected type `IO t0' with actual type `String'
In the expression: main
When checking the type of the function `main'

有谁能解释我? ....

1 个答案:

答案 0 :(得分:3)

您希望expo "stuff"的返回值发生什么?

假设您要将其打印到控制台:

main = do
  putStrLn $ expo "Stuff"

do块中的所有语句都必须是IO something类型(另请参阅let绑定),最后一个必须是IO ()。如果这对你没有意义,那么你已经遇到了haskell着名的学习曲线之一。阅读教程中的更多页面,通过练习将变得清晰。 继续学习!