首页 > 解决方案 > 如何比较 raku-lang 中的集合?

问题描述

如何操作包含结构化数据的两个集合。

例如

set(set(<a b c>), set(<d e f>)) ⊆ set(set(<a b c>), set(<d e f>), set(<g h i>))#True
set(set(<a b c>), set(<d e f>)) eq set(set(<a b c>), set(<d e f>), set(<g h i>))#false
set(set(<a b c>), set(<d e f>)) ∩ set(set(<a b c>), set(<d e f>), set(<g h i>))#set(<a b c>), set(<d e f>))

标签: setraku

解决方案


无论 a 中的值是什么Set,您都可以使用eqv运算符来确定它们是否相同:

$ raku -e 'say <a b c>.Set eqv <c b a>.Set'
True

$ raku -e 'say <a b c>.Set eqv <d b a>.Set'
False

$ raku -e 'say set(<a b c>.Set,<a b d>.Set) eqv set(<d b a>.Set,<c b a>.Set)'
True

推荐阅读