我想在使用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