如何在 F# 中编写输入循环?

2 .net f#

在 C# 中,我会这样写:

string input;
do
{
    Console.Write("Enter an equation: ");
    input = Console.ReadLine();
} while (FSharpOption<Expression>.get_IsNone(Infix.TryParse(input)));
Run Code Online (Sandbox Code Playgroud)

这将提示用户重复输入一个方程,直到他们输入一个可以解析的方程。我将如何在 F# 中执行此操作?

Lee*_*Lee 6

你可以写一个递归函数:

let rec readInput () =
    Console.Write("Enter an equation: ")
    let input = Console.ReadLine()
    match Infix.TryParse(input) with
    | Some(e) -> e
    | None -> readInput()
Run Code Online (Sandbox Code Playgroud)