【发布时间】:2019-04-20 18:10:51
【问题描述】:
我正在尝试编写一个将字符串作为输入并将其附加到文件的函数。该文件每次都是同一个文件。函数编译正确但报错
"(Show (String -> IO ())) 没有实例 由使用 `print'" 引起的。
代码是:
appendText :: String -> IO ()
appendText [] = return ()
appendText x = appendFile "testfile.txt" x
我了解问题与类型和 Show 类型有关,但我无法理解问题以及如何解决问题。任何帮助都会很棒。
编辑:我将其称为函数,例如appendFile“随机文本”
【问题讨论】:
-
您需要展示足够多的程序(以及您使用它的方式)以包含产生错误的部分,而您目前没有这样做。具体来说,您的任何代码都没有包含导致错误的
print的使用。尝试创建一个MCVE。 -
另外,请尽量使用代码格式化工具。 Haskell 中的缩进很重要,如果不查看代码的实际缩进方式,可能无法知道您的代码是否正确。这次我已经为你做了这件事。
-
澄清一下,我的程序中没有使用“打印”,这就是错误让我感到困惑的原因。我包含的代码与程序中的任何其他代码完全隔离。