Haskell 用于非字符串输入的appendFile函数

Haskell 用于非字符串输入的appendFile函数,haskell,io,functional-programming,monads,Haskell,Io,Functional Programming,Monads,我想写一个包含元组列表的文件,但是appendFile需要字符串输入。我想我可以显示或引用元组将其字符串化,然后读取它们;但是,我只希望能够保存n元组列表,以跳过“shownow和readlater”部分。是否有Show a=>FilePath->a->IO()版本的appendFile函数?a显示没有类型为的函数。然而,自己写并不难: showAppendFile :: Show a => FilePath -> a -> IO () showAppendFile p x =

我想写一个包含元组列表的文件,但是
appendFile
需要字符串输入。我想我可以
显示
或引用元组将其字符串化,然后
读取
它们;但是,我只希望能够保存n元组列表,以跳过“
show
now和
read
later”部分。是否有
Show a=>FilePath->a->IO()
版本的
appendFile
函数?

a显示没有类型为的函数。然而,自己写并不难:

showAppendFile :: Show a => FilePath -> a -> IO ()
showAppendFile p x = appendFile p (show x)

您可以尝试在Hoogle上搜索您的类型签名:您建议的签名暗示
show
将被调用。因此,我无法理解这样做的目的。您是否希望以二进制格式保存数据?我已经提到过这个“解决方案”。这样做的问题是最终会得到一个字符串文件,而不是空元组。使用类约束重载函数的原因是,为了从文件中读取,我认为它必须是可显示类型。这可能更重要,因为我没有仔细考虑过文件格式的选择。