2012-06-14 70 views
0

我想將列表的類型設置爲整數,但我不知道如何執行此操作。 我可以做到以下幾點:OCaml列表的設置類型

let listOfInts = []; 

但是,這只是讓listOfInts與允許放給它的任何類型的列表。 如何強制listOfInts只是一個整數列表?

這是爲了在OCaml中製作一個將字符串(鍵)映射到int(值)的字典。 爲了簡單起見,我只是將該值作爲字符串的長度。 有人可以幫我解決這個問題嗎?提前致謝。

回答

6

明確聲明類型。

let (listOfInts : int list) = []; 
4

這裏我們就迫使通過註釋類型沒有用:你可以在任何類型的,你用它來創建一個特定類型的元素列表中使用[]但是,因爲不久,它將被實例化正確的類型。

註釋有時對於既不完全推斷也不一般化的可變狀態值的類型(例如ref [])有用。

我不明白這與你有什麼關係,在字符串和整數之間有一個映射,因爲這根本不涉及列表。如果你想要一個可變的地圖,你可以使用Hasthbl,否則Map

module StringMap = Map.Make(String) 
let m = StringMap.add "foo" 3 StringMap.empty 

m具有類型int StringMap.t