我在序列构造中调用函数时遇到问题。 显然,这个函数被称为整个代码 不会产生预期的结果。这是代码:
get()
这里,mylist是一个记录列表。我打算用它来构建一个序列 从函数getStatus更新字段状态。它就是这么做的 不起作用,该函数似乎不会为每次迭代运行 按预期循环。
感谢任何帮助。
答案 0 :(得分:5)
序列很懒惰。在枚举序列之前,您的函数不会运行。
您需要将序列转换为具体的集合类型,如列表或数组(它将枚举序列并强制您的函数运行):
seq { for b in mylist do yield { b with status = getStatus b } }
|> Seq.toList
或者,如果您只关心副作用(不是您的情况),请使用Seq.iter
。