这是我们要解决的问题:

我有一个 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/

10-10 09:38