这是我们要解决的问题:
我有一个 clown 代理机构,许多 clown 参加不同的聚会。有些人参加同一个聚会。我记录下谁参加了哪个聚会。
然后,我有一个死 clown ,但我需要分析日志以获取要调查的人, clown 和党中的其他人,而且还需要与死 clown 有关的所有政党和 clown (所有在场的 clown clown 参加过的先前派对)。
基本上,我已经考虑过使用图形来完成此操作,但是也许这不是最好的主意,因为在此问题中使用图形非常复杂。
我的日志是这样的:
type Action =
| Move of Clown * Party
let logs = Action list
您认为转换列表并解析它会是一个好的数据结构吗?
最佳答案
这是使用Seq.groupBy
函数的功能解决方案
logs |> Seq.groupBy (function |Move(clown,party) -> party) |> Map.ofSeq
这将为您提供一个
Map<Party,Clown list>
,您可以轻松查询该代码以查找哪个 clown 参加了哪个聚会。关于f# - 具有功能数据结构的死 clown ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8394031/