2012-08-30 62 views
0

我想實現類似於ML中的哈希表,但我想使用列表作爲關鍵。我想我可以使用ORD_MAP結構,但是我想爲ORD_KEY簽名提供我自己的結構,以便我可以使用列表作爲ord_keys,但我找不到一種方法來完成它。它怎麼能做到?使用ORD_MAP作爲SML /新澤西州的哈希表

回答

2

ORD_MAP和ORD_KEY是簽名。如果你想能夠使用地圖,你需要一個特定的實現。例如:

structure Key = 
    struct 
    type ord_key = int 
    val compare = Int.compare 
    end 
structure Map = RedBlackMapFn (Key) 

然後,你可以這樣做:

- Map.singleton (1, "foo"); 
    val it = - : string map 
    - Map.find (it, 1); 
    val it = SOME "foo" : string option 
    - 

希望幫助!這些接口的文檔: http://www.smlnj.org/doc/smlnj-lib/Manual/toc.html

0

,我認爲一個例子回答您的問題在於,在康奈爾大學的演講在這裏: Cornell's Lecture