我想在使用SML的CPN工具中执行模式匹配功能。 我已经定义了一个色彩集EVENT:colset EVENT = product EVENTTYPE * EVENTTIME timed;
比较具有不同结构的两个列表
当比较列表时,我只对事件类型感兴趣,所以我试图比较[a,b]
到[ (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#操作员。 不幸的是,我不知道如何从我实际上感兴趣的第一个列表中仅提取元组的一部分。对此有何帮助?
任何原因,你不能只是'地图(FN(一,_)=> A)xs',然后两个列表直接比较?它看起来并不像你需要这个函数中的任何东西的第二个值。 – Inaimathi