假设我有n
(在这种情况下为7)输入
10
20
30
40
50
60
70
如何读取所有输入并将它们存储在列表/数组中?
我试过了,
let inputList = [
while (let line = Console.ReadLine()) <> null do
line |> int
]
我的想法是阅读,直到我得到一个空行。
但是我收到以下错误,
阻止这样做&#39;让&#39;尚未完成。期待一个表达。
答案 0 :(得分:7)
要以功能样式执行此操作,您可以使用Seq.initInfinite
从控制台创建序列。
然后,当您使用Seq.takeWhile
获取空值时,需要终止此列表。除此之外,您还可以使用所有Seq
模块功能,包括Seq.toList
。
let read _ = Console.ReadLine()
let isValid = function null -> false | _ -> true
let inputList = Seq.initInfinite read |> Seq.takeWhile isValid |> Seq.toList