我在序列构造中调用函数时遇到问题.显然,这个函数被懒得调用,整个代码不会产生预期的结果.这是代码:
mylist
|> fun myseq ->
seq { for b in mylist do yield { b with status = (getStatus b)}}
Run Code Online (Sandbox Code Playgroud)
这里,mylist是一个记录列表.我打算用它从函数getStatus更新的字段状态构建一个序列.它根本不起作用,该函数似乎没有按预期运行for循环的每次迭代.
感谢任何帮助.
序列是懒惰的.在枚举序列之前,您的函数不会运行.
您需要将序列转换为具体的集合类型,如列表或数组(将枚举序列并强制运行您的函数):
seq { for b in mylist do yield { b with status = getStatus b } }
|> Seq.toList
Run Code Online (Sandbox Code Playgroud)
或者,如果您只关心副作用(这不是您的情况),请使用Seq.iter.
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |