我想在OCaml中創建一個查找表。該表將有7000多個條目,在查找時(由int)返回一個字符串。什麼是適合此任務的適當數據結構?該表是否應該從基本代碼中體現出來,如果是這樣,那麼如何從他/她的程序中「查找」查詢表?OCaml中的查找表
謝謝。
我想在OCaml中創建一個查找表。該表將有7000多個條目,在查找時(由int)返回一個字符串。什麼是適合此任務的適當數據結構?該表是否應該從基本代碼中體現出來,如果是這樣,那麼如何從他/她的程序中「查找」查詢表?OCaml中的查找表
謝謝。
let table : (int,string) Hashtbl.t = Hashtbl.create 8192
要存儲在單獨的文件(例如,作爲一個數組)的表,簡單地創建一個文件strings.ml
與內容:
let tbl = [|
"String 0";
"String 1";
"String 2";
...7000 more...
|]
與編譯該
如manual中所述,這定義了其他Ocaml模塊可以引用的模塊Strings
。例如,你可以開始一個頂層:
ocaml strings.cmo
而且通過訪問陣列中的一個特定位置查找的字符串:
Strings.tbl.(1234) ;;
您的意思是「包括」在這裏是不明確的。也許你可以給你一些僞代碼來做你想做的事情? – 2009-02-06 19:16:37
我的意思是「包含」是從代碼中外部化數據,有點像頭文件。 OCaml可能嗎? – 2009-02-06 20:42:59
仍不確定你的意思。 OCaml有一個不需要頭文件的獨立編譯系統。只需確保模塊在編譯時位於包含路徑中。 – 2009-02-08 01:57:51