String formatting in Haskell
What is Ha开发者_开发知识库skell's equivalent of
string str = string.Format("{0} {1}",10,20); // C#
There is a Printf module in GHC.
import Text.Printf
str :: String
str = printf "%d %d" 10 20
however it is probably simpler to just do
str = show 10 ++ " " ++ show 20
You could use the format
function provided by the text-format-simple package:
import Text.Format
format "{0} {1}" [show 10, show 20]
This function has the signature:
format :: String -> [String] -> String
So all you need is provide your parameters as strings.
Another example:
format "Some {0} believes that 1 + 1 = {1}." ["people",show 10]
Putting answer here in case somebody searching for formatting libraries in Haskell on StackOverflow. There's type-safe and fast formatting library called fmt
now. With it you can write code like this:
> "There are "+|n|+" million bicycles in "+|city|+"."
Is this what you are looking for?
printf "%d %d" 10 20
See Text.Printf
.
Alternatively you could write
unwords [show 10, show 20]
or even
unwords (map show [10, 20])
精彩评论