// Define the Complex type as a recordtypeComplex=
{ Re:floatIm:float };;
// Make some complex numbersletz1= {Re=1.0; Im=4.0};;
letz2= {Re=2.0; Im=-2.0};;
// printing strings are OKprintfn"Hello";;
// Error - don't know how to print a Complex//printfn z1;; // <-- Error // print anything with '%A'printfn"%A"z1;;
// Make our own printing for Complex (using float formatting %f, 3 decimals)letprintz=printfn"%.3f%+.3fi"z.Rez.Im;;
// ... and try it outprintz1;;
Complex.Re: float
Multiple items val float : value:'T -> float (requires member op_Explicit)
Full name: Microsoft.FSharp.Core.Operators.float
-------------------- type float = System.Double
Full name: Microsoft.FSharp.Core.float
-------------------- type float<'Measure> = float
Full name: Microsoft.FSharp.Core.float<_>
Complex.Im: float
val z1 : Complex
Full name: Script.z1
val z2 : Complex
Full name: Script.z2
val printfn : format:Printf.TextWriterFormat<'T> -> 'T
Full name: Microsoft.FSharp.Core.ExtraTopLevelOperators.printfn