printf-mauke-0.3: A Perl printf like formatter.Source codeContentsIndex
printf :: PrintfType r => String -> r
hPrintf :: HPrintfType r => Handle -> String -> r
class FromChar a where
fromChar :: Char -> a
class ToChar a where
toChar :: a -> Char
class PrintfType a
class HPrintfType a
class PrintfArg a
printf :: PrintfType r => String -> rSource

Format a variable number of arguments according to a format string, similar to (s)printf in Perl. The return value is either a String or IO (), in which case the result is printed to stdout.

The format string consists of ordinary characters (everything except '%'), which are passed through unchanged, and formatting directives, which have the following form:

  % flag* vector? width? precision? type

(* and ? mean 0 or more and 0 or 1 of the preceding item, respectively.)


prefix positive numbers with a space
prefix positive numbers with a plus sign (overrides space if both are present)
left-justify within the field
pad with zeroes on the left, not spaces
prefix binary numbers with 0b/0B, octal numbers with 0o/0O and hexadecimal numbers with 0x/0X

The vector flag v tells printf to format each character in the string argument according to the current directive, then joins the results with a separator that defaults to ".". When *v is used, the separator is taken from the argument list (use e.g. printf "%*v.2x" "" str if you want no separator).

The width is either a decimal integer or *, in which case the width is taken from the argument list (this argument must be an integer). It specifies the minimum width for this field. Shorter values are padded on the left with spaces (but this can be changed by the 0 and - flags). If the width taken from the argument list is negative, it behaves as if the - flag was specified.

The precision consists of a . followed by digits or a * (see the description of width above). The effects depend on the format type:

  • for floating point formats, this specifies the number of digits after the decimal point
  • for string formats, this is the maximum number of characters to appear (longer strings are truncated)
  • for integer formats, this is the minimum number of digits to appear in the output; shorter values are zero-padded


A percent sign. No argument is consumed.
A character. If the argument is an integer, it is converted with chr.
A string.
A decimal integer.
An unsigned decimal integer.
A binary integer.
Like b, but using a 0B prefix with #.
An octal integer.
Like o, but using a 0O prefix with #.
A hexadecimal integer.
Like x, but using uppercase letters.
A floating point number in scientific notation.
Like e, but using an uppercase E.
A floating point number in fixed decimal notation.
A floating point number in %e or %f notation.
Like g, but using an uppercase E.
A generic format; it behaves like %c, %s, %d or %g, depending on the argument type.
hPrintf :: HPrintfType r => Handle -> String -> rSource
Like printf, except that the result is printed to the specified Handle.
class FromChar a whereSource
fromChar :: Char -> aSource
show/hide Instances
class ToChar a whereSource
toChar :: a -> CharSource
show/hide Instances
class PrintfType a Source
show/hide Instances
FromChar a => PrintfType ([] a)
Default a => PrintfType (IO a)
(PrintfArg a, PrintfType r) => PrintfType (a -> r)
class HPrintfType a Source
show/hide Instances
class PrintfArg a Source
show/hide Instances
Produced by Haddock version 2.4.2