PercentFormat – C-like printf-style string formatting for Haskell
The Text.PercentFormat
library provides printf-style string formatting. It
provides a %
operator (as in Ruby or Python) and uses the old C-printf-style
format you know and love.
This library differs from Text.Printf
in that it does not rely on custom
typeclasses – it works on anything that is a Show
instance.
Formatting one value:
> import Text.PercentFormat
> "Hello %s!" -% "World"
"Hello World!"
Formatting three values, tuple style:
> "load average: %1.2f %1.2f %1.2f" -%%% (0.00, 0.066, 0.11)
"load average: 0.00 0.07 0.11"
Formatting three values, chain style:
> "load average: %1.2f %1.2f %1.2f" % 0.00 % 0.066 -% 0.11
"load average: 0.00 0.07 0.11"
To produce a string with a percent sign (%
),
use two percent signs (%%
):
> "memory usage: %i%%" -% 13
"memory usage: 13%"
Percent signs are duplicated when using the %
operator to allow chaining:
> "percent sign: %s, memory usage: %i%%" % "%" % 87
"percent sign: %%, memory usage: 87%%"
Always use the -%
operator when formatting the last value
to remove duplicate %
signs:
> "percent sign: %s, memory usage: %i%%" % "%" -% 87
"percent sign: %, memory usage: 87%"
To print, just prefix you format expression with putStrLn $
:
> putStrLn $ "Hello %s!" -% "World"
Hello World!