我正在尝试使用 SML 在 CPN 工具中执行模式匹配功能。我已经定义了一个颜色集事件:colset EVENT = product EVENTTYPE * EVENTTIME timed;
在比较列表时,我只对事件类型感兴趣,所以我试图比较例如[a,b]
to [ (a,0), (b,1) ]
- 所以我编写了以下 SML 函数来比较两个列表:
fun pattern_match _ [] = true
| pattern_match [] [x] = false
| pattern_match (x::xs) (y::ys) =
if #1 x = y
then pattern_match xs ys
else pattern_match xs (y::ys)
这只会在 evalloop.sml 中给我一个未指定的编译器错误因为我对 SML 还很陌生,所以我的猜测是 SML 不支持 CPN-Tools #-operator。不幸的是,我不知道如何从我真正感兴趣的第一个列表中只提取元组的一部分。对此有什么帮助吗?