黑客语言 - 设置交集
Hack language - Set intersection
Hack Set
有一个 difference
方法,但我没有看到名为 intersect
或任何类似方法的方法。
如何得到两个集合的交集?
$set1 = Set { 'a', 'x' };
$set2 = Set { 'b', 'c', 'x', 'y' };
$intersection = ??? // Set { 'x' }
我不确定为什么这个函数不存在,但是你可以把这段代码放在一些实用函数中:
$intersection = Set {};
foreach ($other as $v) {
if ($set->contains($v)) {
$intersection->add($v);
}
}
此外,您可以添加一个检查,以便迭代较小的集合。
或者,如果你喜欢一个衬里,这也行:)
$set1->filter($x ==> $set2->contains($x))
Hack Set
有一个 difference
方法,但我没有看到名为 intersect
或任何类似方法的方法。
如何得到两个集合的交集?
$set1 = Set { 'a', 'x' };
$set2 = Set { 'b', 'c', 'x', 'y' };
$intersection = ??? // Set { 'x' }
我不确定为什么这个函数不存在,但是你可以把这段代码放在一些实用函数中:
$intersection = Set {};
foreach ($other as $v) {
if ($set->contains($v)) {
$intersection->add($v);
}
}
此外,您可以添加一个检查,以便迭代较小的集合。
或者,如果你喜欢一个衬里,这也行:)
$set1->filter($x ==> $set2->contains($x))