Share via


ExtraTopLevelOperators.printfn<'T> Function (F#)

The printfn function prints to stdout using the given format, and adds a newline.

Namespace/Module Path: Microsoft.FSharp.Core.ExtraTopLevelOperators

Assembly: FSharp.Core (in FSharp.Core.dll)

// Signature:
printfn : TextWriterFormat<'T> -> 'T

// Usage:
printfn format

Parameters

Remarks

This function is named PrintFormatLine in compiled assemblies. If you are accessing the function from a language other than F#, or through reflection, use this name.

Example

The following code example demonstrates the use of printfn with various format specifiers. For more information on format specifiers, see Printf Module.

let isDone = false
printfn "Printing Boolean values: %b %b" isDone (not isDone)
let s1,s2 = "test1", @"C:\test2"
printfn "Printing strings (note literal printing of string with special character): %s%s" s1 s2
let i1, i2 = -123, 1891
printfn "Printing an integer in decimal form, with and without a width: %d %10d" i1 i2
printfn "Printing an integer in lowercase hexadecimal: %x or 0x%x" i1 i2
printfn "Printing as an unsigned integer: %u %u" i1 i2
printfn "Printing an integer as uppercase hexadecimal: %X or 0x%X" i1 i2
printfn "Printing as an octal integer: %o %o" i1 i2
printfn "Printing in columns." 
for i in 115 .. 59 .. 1000 do
    printfn "%10d%10d%10d%10d%10d" (10100015-i) (i-100) (115+i) (99992/i) (i-8388229)
let x1, x2 = 3.141592654, 6.022E23
printfn "Printing floating point numbers %e %e" x1 x2
printfn "Printing floating point numbers %E %E" x1 x2
printfn "Printing floating point numbers %f %f" x1 x2
printfn "Printing floating point numbers %F %F" x1 x2
printfn "Printing floating point numbers %g %G" x1 x2
printfn "Using the width and precision modifiers: %10.5e %10.3e" x1 x2

printfn "Using the flags:\nZero Pad:|%010d| Plus:|%+10d |LeftJustify:|%-10d| SpacePad:|% d|" 1001 1001 1001 1001 
printfn "zero pad   | |+- both   | |- and ' ' | |' ' and 0 | | normal " 
for i in -115 .. 17 .. 100 do
    printfn "|%010d| |%+-10d| |%- 10d| |% 010d| |%10d|" (80-i) (i+85) (100+i) (99992/i) (i-80)

let d = 0.124M
printfn "Decimal: %M" d

printfn "Print as object: %O %O %O %O" 12 1.1 "test" (fun x -> x + 1)

printfn "%A" [| 1; 2; 3 |]

printfn "Printing from a function (no args): %t" (fun writer -> writer.WriteLine("X"))

printfn "Printing from a function with arg: %a" (fun writer (value:int) -> writer.WriteLine("Printing {0}.", value)) 10
Printing Boolean values: false true
Printing strings (note literal printing of string with special character): test1C:\test2
Printing an integer in decimal form, with and without a width: -123       1891
Printing an integer in lowercase hexadecimal: ffffff85 or 0x763
Printing as an unsigned integer: 4294967173 1891
Printing an integer as uppercase hexadecimal: FFFFFF85 or 0x763
Printing as an octal integer: 37777777605 3543
Printing in columns.
  10099900        15       230       869  -8388114
  10099841        74       289       574  -8388055
  10099782       133       348       429  -8387996
  10099723       192       407       342  -8387937
  10099664       251       466       284  -8387878
  10099605       310       525       243  -8387819
  10099546       369       584       213  -8387760
  10099487       428       643       189  -8387701
  10099428       487       702       170  -8387642
  10099369       546       761       154  -8387583
  10099310       605       820       141  -8387524
  10099251       664       879       130  -8387465
  10099192       723       938       121  -8387406
  10099133       782       997       113  -8387347
  10099074       841      1056       106  -8387288
  10099015       900      1115        99  -8387229
Printing floating point numbers 3.141593e+000 6.022000e+023
Printing floating point numbers 3.141593E+000 6.022000E+023
Printing floating point numbers 3.141593 602200000000000000000000.000000
Printing floating point numbers 3.141593 602200000000000000000000.000000
Printing floating point numbers 3.14159 6.022E+23
Using the width and precision modifiers: 3.14159e+000 6.022e+023
Using the flags:
Zero Pad:|0000001001| Plus:|     +1001 |LeftJustify:|1001      | SpacePad:| 1001|
zero pad   | |+- both   | |- and ' ' | |' ' and 0 | | normal 
|0000000195| |-30       | |-15       | |-000000869| |      -195|
|0000000178| |-13       | | 2        | |-000001020| |      -178|
|0000000161| |+4        | | 19       | |-000001234| |      -161|
|0000000144| |+21       | | 36       | |-000001562| |      -144|
|0000000127| |+38       | | 53       | |-000002127| |      -127|
|0000000110| |+55       | | 70       | |-000003333| |      -110|
|0000000093| |+72       | | 87       | |-000007691| |       -93|
|0000000076| |+89       | | 104      | | 000024998| |       -76|
|0000000059| |+106      | | 121      | | 000004761| |       -59|
|0000000042| |+123      | | 138      | | 000002631| |       -42|
|0000000025| |+140      | | 155      | | 000001818| |       -25|
|0000000008| |+157      | | 172      | | 000001388| |        -8|
|-000000009| |+174      | | 189      | | 000001123| |         9|
Decimal: 0.124
Print as object: 12 1.1 test FSI_0006+clo@159-44
[|1; 2; 3|]
Printing from a function (no args): X

Printing from a function with arg: Printing 10.

Platforms

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Version Information

F# Core Library Versions

Supported in: 2.0, 4.0

See Also

Reference

Core.ExtraTopLevelOperators Module (F#)

Microsoft.FSharp.Core Namespace (F#)