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!