BSD-3-Clause licensed and maintained by Rudy Matela
This version can be pinned in stack with:percent-format-0.0.2@sha256:070d354ccc5a6b007222cb11a3deea5182879f66b19e57404abb9149edf912b5,3566
Depends on 1 package(full list with versions):

PercentFormat – C-like printf-style string formatting for Haskell

PercentFormat’s Build Status PercentFormat on Hackage PercentFormat on Stackage LTS PercentFormat on Stackage Nightly

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, using -%%%:

> "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, using % and -%:

> "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!

For more information and a detailed list of options, see PercentFormat’s Haddock Documentation.

PercentFormat is a work in progress. Any help or pull requests are welcome. See PercentFormat’s TO DO list for ideas on how to contribute.


To install the latest PercentFormat version from Hackage, just run:

$ cabal update
$ cabal install percent-format