writeStr []=putChar ' '
writeStr (x:xs) = (putChar x)(writeStr xs)

您好,在此先感谢您输入类型错误,这应该是一个简单的答案,但我只是不知道错误的来源。

最佳答案

您的代码有点奇怪。如果我做对了,您尝试打印一个字符串。您的方法是放置第一个字符串,而不是第二个。但是在Haskell中不可能将两个这样的IO动作组合在一起。再次在您的教程中查看有关此内容的信息,如下所示:

writeStr []     = return () -- you had putChar ' ',
writeStr (x:xs) = do putChar x -- but this would print a superfluous whtiespace
                     writeStr xs

如果要顺序执行几项操作,请使用do-keyword或monadic组合器。非常简单,就像这样:
do action1
   action2
   action3
   ...

09-10 14:34