2010-07-10 44 views
2

有一些集合 - 比方说,每个集合都是开发人员知道的一组编程语言。它有一个名字吗?按照他们所属的集合对对象进行分组

{"Alice" => Set["Java", "Python", "C++"], "Bob" => Set["Ruby"], "Charlie" => Set["Ruby", "C++"]}

我想按照它们所属的集合对这些对象进行分组 - 在这种情况下,从共享某些语言知识的开发人员组映射到这些语言集合。存在于输入各种语言将出现一次在这里:

{Set["Alice"] => Set["Java", "Python"], Set["Alice", "Charlie"] => Set["C++"], Set["Bob", "Charlie"] => Set["Ruby"]}

这种操作的类型将是Hash[A, Set[B]] => Hash[Set[A], Set[B]]。 (在实践中,普通数组很可能会被用来代替集合,我在这里使用集合来表示顺序无关紧要,并且没有重复)

我不是问如何编写这个操作(当然,如果你知道一个特别优雅的方式,随时分享) - 我想知道它是否有一个名字。它似乎很常见,但我想不出任何事情。

回答

0

“反向映射”?

+0

“反向映射”表明更像是'Hash [A,B] => Hash [B,A]',并且实际上在DNS的上下文中以这种方式使用 - 通常DNS系统就像'Hash [主机名,IP ]',但是“反向映射”功能使其像“Hash [IP,Hostname]”(简化事物)一样。 – taw 2010-07-11 12:57:52

相关问题