Skip to content

Instantly share code, notes, and snippets.

@ScottHutchinson
Last active November 30, 2017 02:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ScottHutchinson/429dbe5f85613c93b5ddb24abc3e6661 to your computer and use it in GitHub Desktop.
Save ScottHutchinson/429dbe5f85613c93b5ddb24abc3e6661 to your computer and use it in GitHub Desktop.
Compile-time checking of format specifications
// https://sharplab.io/#v2:DYLgZgzgNAJiDUAfYBTALgAhgewPpgEsVgYMwBbTANwwF4BYAKAxYwAcAnAgOzTG7KUMVJkwDaAHgCivDgE8ACth5oAfAF0mqTOQCGPDLjpNWWPIWKkARAFICVjFYASxYNgwB1bBxJWTrAGU5CDQUcgA6AGFsbghsVHCAJRRdGAAZHhQACgBKDERVDAIAc25vFH8WAAYMAHpajA50AFcOAV0BFRRilA4MFAAPAkwAY2wYCsYgA==
// https://dotnetfiddle.net/aUGh3I
let getResult arg =
let rand = new System.Random()
let v = (arg * rand.NextDouble()) - 1.0
v
let do_field fmt v =
printfn fmt v
[<Literal>]
let fmt = "Random Result: %f"
[<EntryPoint>]
let main _ =
let v = getResult 2.0
do_field "Random Result: %f" v
// do_field "%i" "Hello World"
System.Console.ReadLine() |> ignore
0 // return an integer exit code
// https://sharplab.io/#v2:DYLgZgzgNAJiDUAfYBTALgAhgewPpgEsVgYMwBbTANwwF4BYAKAxYwAcAnAgOzTG7KUMVJkwDaAHgCivDgE8ACth5oAfAF0mqTOQCGPDLjpNWWPIWKkARAFICVjFYASxYNgwB1bBxJWTrAGU5CDQUcgA6AGFsbghsVHCAJRRdGAAZHhQACgBKDERVDAIAc25vFH8WAAYMAHpajA50AFcOAV0BFRRilA4MFAAPAkwAY2wYCsYgA==
// https://dotnetfiddle.net/aUGh3I
let do_field fmt v =
printfn fmt v
[<EntryPoint>]
let main _ =
do_field "%i" "Hello World"
System.Console.ReadLine() |> ignore
0 // return an integer exit code
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment