你好我正在用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'
有谁能解释我? ....
答案 0 :(得分:3)
您希望expo "stuff"
的返回值发生什么?
假设您要将其打印到控制台:
main = do
putStrLn $ expo "Stuff"
do块中的所有语句都必须是IO something
类型(另请参阅let
绑定),最后一个必须是IO ()
。如果这对你没有意义,那么你已经遇到了haskell着名的学习曲线之一。阅读教程中的更多页面,通过练习将变得清晰。 继续学习!