Format a variable number of arguments with the C-style formatting string.
The return value is either String or (IO a).
The format string consists of ordinary characters and conversion
specifications, which specify how to format one of the arguments
to printf in the output string. A conversion specification begins with the
character %, followed by one or more of the following flags:
- left adjust (default is right adjust)
0 pad with zeroes rather than spaces
followed optionally by a field width:
num field width
* as num, but taken from argument list
followed optionally by a precision:
.num precision (number of decimal places)
and finally, a format character:
c character Char, Int, Integer
d decimal Char, Int, Integer
o octal Char, Int, Integer
x hexadecimal Char, Int, Integer
u unsigned decimal Char, Int, Integer
f floating point Float, Double
g general format float Float, Double
e exponent format float Float, Double
s string String
Mismatch between the argument types and the format string will cause
an exception to be thrown at runtime.
> printf "%d\n" (23::Int)
> printf "%s %s\n" "Hello" "World"
> printf "%.2f\n" pi