CPN ML编程与非层次化有色Petri网的形式定义
1. CPN ML编程:记录操作与启用绑定元素计算
1.1 记录操作函数实现
在CPN ML编程中,对于记录类型数据的操作十分常见。例如,有一个函数用于从参数 datapack 中提取 data 字段,最初的实现方式是使用 #data 操作符。不过,由于CPN ML类型系统只能从函数体推断出 datapack 是一个包含 data 字段的记录类型,无法唯一确定其类型,所以需要显式指定参数 datapack 的类型为 DATAPACK 。
该函数还可以使用记录模式来实现,以下是几种不同的实现方式:
fun ExtractData ({seq=n,data=d}) = d;
fun ExtractData ({seq,data}) = data;
fun ExtractData ({data,...}:DATAPACK) = data;
- 第一种实现中,当函数被调用时,记录模式
{seq=n,data=d}会与提供的参数进行匹配,局部变量n会绑定到记录的seq字段,d会绑定到data字段。 - 第二种实现则不需要显
超级会员免费看
订阅专栏 解锁全文
17

被折叠的 条评论
为什么被折叠?



