| 多重集 | CPN工具帮助(CPN Tools help) |
| CPN的ML语言(CPN ML) |
后引号 (`) 是多重集的结构符。例如,3`7的意思是有三个颜色7。
i`c
整数i必须是非负的。如果为负,则将返回一个空的多重集。
3`true++2`false
是一个有5个布尔量的布尔量多重集:3个ture,2个false。
empty |
常量empty是一切多重集的空集 |
ms1 == ms2 |
两个多重集相等 |
ms1 <><> ms2 |
两个多重集不等 |
ms1 >> ms2 |
多重集大于 |
ms1 >>== ms2 |
多重集大于或等于 |
ms1 << ms2 |
多重集小于 |
ms1 <<== ms2 |
多重集小于或等于 |
ms1 ++ ms2 |
多重集加法 |
ms1 -- ms2 |
多重集减法(ms2必须小于或等于ms1),如果ms2大于ms1,则会产生减法例外(exception)。 |
i ** ms |
纯量乘法 |
size ms |
多重集ms的大小 |
random ms |
在ms中返回一个伪随机颜色 |
cf(c,ms) |
返回颜色c在ms中的数量 |
filter p ms |
在ms内产生所有符合谓词p的的多重集 |
ext_col f ms |
输入一个函数f和一个多重集:c1`s1++c2`s2++...++cn`sn;然后产生一个多重集:c1`f(s1)++c2`f(s2)++...++cn`f(sn) |
ext_ms f ms |
输入一个函数f和一个多重集:c1`s1++c2`s2++...++cn`sn;然后产生一个多重集: c1*f(s1)++c2*f(s2)++...++cn*f(sn) |
ms_to_col ms |
把一个大小为1的多重集转换为单元素的多重集,如果ms的大小不为1的话会产生no_singleton例外(exception)。 |