0
我有不同的用戶定義類型,我需要在一個集合中放置。在那一刻,我知道,定義一組模塊,我可以做這樣的事情:定義一個採用用戶自定義類型的集合ocaml
module Mut = Set.Make(struct type t = string ;; let compare = compare end);;
但是是有可能的,而不是字符串,有我自己的用戶定義類型,像這樣?:
module Mut = Set.Make(struct type t = procexp ;; let compare = compare end);;
procexp的細節是:
type 'ty procexp =
Zero
| Pproc of string
| Procdef of 'ty procexp * 'ty procexp
| Rep of 'ty procexp
| Par of 'ty procexp * 'ty procexp
| Concur of 'ty procexp * 'ty procexp
| Nu of var * 'ty * 'ty procexp * pos
| Timer of var * var* var * 'ty procexp * 'ty procexp
| In of var * var * 'ty * 'ty procexp * pos
| Out of var * 'ty valexp * 'ty procexp * pos
任何幫助,這是極大的讚賞。謝謝!
謝謝,我已經更新了procexp – user1514567
的我的細節問題d說這種類型使用'compare'即可。當你認爲'procexp'類型的兩個值相等時,你必須問自己,這是一個基本問題。有時答案與'compare'計算的結果不一樣。 –
感謝您的回答,我會嘗試一下。 – user1514567