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

标签 f# console stream sequences

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

当 line = null 时,seq 应该中断

ConsoleLines(): unit -> string seq

像这样使用:
for line in ConsoleLines() do
    DoSomething line

这个函数怎么写?

谢谢

最佳答案

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

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

关于F# 如何将 Console.ReadLine() 抽象为字符串 seq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/505891/

相关文章:

python - Python 和 F# 中的递归变量定义(也可能是 OCaml)

list - 反转列表列表

python - 从 linux 控制台运行一个函数(从 .py 文件)

string - 使用 PowerShell sls (Select-String) vs grep vs findstr

flutter - StreamBuilder 和 Flutter 中的流问题(接收重复数据)

ffmpeg - 在 FFmpeg 中使用 -filter_complex amerge 时混合流

.net - 如何强制 app.config 成为 exe.config

c# - F# 适用于已经将函数委托(delegate)作为参数的 C# 程序员

python - 禁用 Pygame 控制台输出

video - 谷歌眼镜视频流