我需要将列表的头部传递给 List.fold。如果 departments
为空,则处理以下情况的 ArgumentException
的功能解决方案是什么。
let result = employees
|> List.fold (...) (List.head departments)
在这里,部门是一个列表。为了清楚起见,我没有在此处指定折叠功能。
编写匹配模式会使我的代码变得笨拙。
最佳答案
您需要检查 departments
列表并提供默认值(如果它为空)。您可以为此提供辅助函数:
let headOrDefault def d =
match d with
| [] -> def
| _ -> List.head d
你可以这样使用:
let result =
employees
|> List.fold (...) (headOrDefault defDep departments)
关于f# - 如果列表为空,如何修复 List.head 中的异常 hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28569741/