2010-07-10 46 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

相關問題