String 如何将Text.Printf的结果转换为字符串?
Text.Printf的结果是PrintfType类型的变量 有没有办法将此结果转换为字符串 我想要这样的东西:convertToString::PrintfType->String 我到处找了,但什么也没找到 Text.Printf的结果是PrintfType类型的变量 否。String 如何将Text.Printf的结果转换为字符串?,string,haskell,return,printf,String,Haskell,Return,Printf,Text.Printf的结果是PrintfType类型的变量 有没有办法将此结果转换为字符串 我想要这样的东西:convertToString::PrintfType->String 我到处找了,但什么也没找到 Text.Printf的结果是PrintfType类型的变量 否。PrintfType是对类型的约束,而不是类型本身。请注意模块Text提供的PrintfType实例。Printf有: IsChar c => PrintfType [c] (~) * a () => Prin
PrintfType
是对类型的约束,而不是类型本身。请注意模块Text提供的PrintfType
实例。Printf
有:
IsChar c => PrintfType [c]
(~) * a () => PrintfType (IO a)
(PrintfArg a, PrintfType r) => PrintfType (a -> r)
有没有办法将此结果转换为字符串
无需转换,String~[Char]
并且存在一个实例IsChar
。因此,满足了PrintfType String
的约束
我想要这样的东西:convertToString::PrintfType->String
这是没有意义的,因为您使用的是
PrintfType
作为类型而不是约束。关于(函数…)呢-顺便说一句:PrintfType
不是类型-它是一个类这就是我所说的函数。它接受格式化字符串作为输入,并返回PrintfType。我的问题是我想把PrintfType转换成字符串。我不明白你想说什么。如果你要求它,它会给你一个字符串-试试:printf“%d”55::string
-string~[Char]
是PrintfType
的一个实例,只是一个猜测(Hugs是一个较旧的Haskell实现,我认为它可能会给出类型为[Char]
)-让我给你一个建议:忘记你可能从C带来的任何类型和类-它们在很大程度上会损害你的理解。好吧,你不必转换任何东西-String
只是[Char]
的类型同义词。。。在Haskell中,它们实际上是一样的——就好像你要用MyString=System.IEnumerable编写代码>在C中#