【在主画面加入捷径】
       
【选择语系】
繁中 简中

Perl 6 程序设计教学:Set、Bag、Mix

【赞助商连结】

    集合 (Set) 是非线性的单一元素的集合,实现数学上的集合论 (set theory)。在 Perl 5,通常是用杂凑仿真集合,Perl 6 则内建集合容器。BagSet 相似,但会计算该元素出现的次数;MixBag 类似,但允许以非整数来计数;除了用来计数外,BagMixSet 相当类似。

    建立集合

    建立串行后调用 Set 方法即可将其转为集合。如下例:

    但是 Set 建立后即不可变动,如果之后要变更其元素,需改用 SetHash,实例如下:

    加入及移除元素

    加入元素的方法类似于杂凑,将键设为 True 即可;移除时则将键设为 False

    检查元素存在性

    使用 (cont) 可检查某集合是否包含某元素,如下例:

    也可以使用 (elem) 检查某元素是否属于某集合,如下例:

    基本上,两者是同义的,使用自己习惯的方式即可。

    集合运算

    Perl 6 集合包含一些常见的集合运算,像是联集 (union)、交集 (intersection)、差集 (difference) 等。实例如下:

    建立 Bag

    对串行调用 Bag 方法即可建立 Bag,如下例:

    如果建立 Bag 后,需更动其内容,改用 BagHash 即可。

    取样本

    由于 Bag 有权重,可设置权重后,对其取样,如下例:

    观察本程序,可发现每次取像的结果都不同,在其中,1 出现的机率最高。

    建立 Mix

    由于 Mix 的权重是非整数,较常用的方式是直接对其设权重,如下例:

    如果建立 Mix 后,需更动其内容,改用 MixHash 即可。基本上,Mix 的用法和 Bag 差不多。

    【赞助商连结】