Вы можете попробовать что-то вроде этого:
open System
let printMenu () =
printfn "Menu: "
printfn "1. Do this"
printfn "2. Do that"
printfn "3. Exit"
printf "Enter your choise: "
let getInput () = Int32.TryParse (Console.ReadLine())
let doThis () = printfn "Do this..."
let doThat () = printfn "Do that..."
let rec menu () =
printMenu()
match getInput() with
| true, 1 ->
doThis()
menu()
| true, 2 ->
doThat()
menu()
| true, 3 -> ()
| _ -> menu()
menu ()