F#如何将Console.ReadLine()抽象为字符串seq

Luc*_*tti 4 console f# sequences stream

我想编写一个函数来将Console.ReadLine()抽象为字符串seq

当line = null时,seq应该会中断

ConsoleLines(): unit -> string seq
Run Code Online (Sandbox Code Playgroud)

要像这样使用:

for line in ConsoleLines() do
    DoSomething line
Run Code Online (Sandbox Code Playgroud)

你怎么写这个功能?

谢谢

Jul*_*iet 5

它不是太漂亮,但它按预期工作:

let rec ConsoleLines() =
    seq {
        match Console.ReadLine() with
        | "" -> yield! Seq.empty
        | x -> yield x; yield! ConsoleLines()
    }
Run Code Online (Sandbox Code Playgroud)


thr*_*thr 5

Seq.initInfinite (fun _ -> Console.ReadLine())
Run Code Online (Sandbox Code Playgroud)