2016-04-18 8 views
-2

Text.Printfの結果は、PrintfType型の変数です。Text.Printfの結果をStringに変換するにはどうすればよいですか?

この結果をStringに変換する方法はありますか?私はそのような何かしたい

:convertToString :: PrintfType - >文字列

を私はどこでも検索したが、私は何かを見つけることができません。

+0

[printf'](https://hackage.haskell.org/package/base-4.8.2.0/docs/Text-Printf.html#v:printf)(機能...) - btw : 'PrintfType'は型なしです - クラスです – Carsten

+0

これは私が話している関数です。これは、入力としてフォーマットされたStringを受け取り、PrintfTypeを返します。私の問題は、そのPrintfTypeをStringに変換したいということです。私はあなたが何を言おうとしているのか理解していません。 –

+1

もしあなたがそれを求めたら文字列を与えます: 'printf"%d "55 :: String' - ' String〜[Char] 'は' PrintfType'のインスタンスです – Carsten

答えて

4

Text.Printfの結果は、PrintfType型の変数です。

番号PrintfTypeはタイプ自体ではなく、タイプに対する制約です。注意してくださいmodule Text.Printfによって提供さPrintfTypeのインスタンスは、次のとおりです。

IsChar c => PrintfType [c] 
(~) * a() => PrintfType (IO a) 
(PrintfArg a, PrintfType r) => PrintfType (a -> r) 

はStringにこの結果を変換する方法はありますか?

変換が不要で、String ~ [Char]があり、インスタンスIsChar Charが存在します。したがって、PrintfType Stringという制約が満たされます。

私はそのような何かしたい:convertToString :: PrintfType - >文字列

あなたの代わりに制約のタイプとしてPrintfTypeを使用しているので、意味がありません。

関連する問題