我在ocaml中實現數組時遇到了一些小問題。例如,終端(konsole中)和I上時鍵入Ocaml實現
let tab = Array.make 5 6;
我有
val tab : int array = [|6; 6; 6; 6; 6|]
作爲輸出。所以它創建一個長度爲5的數組,並用6填充所有的情況。好吧,我理解那個部分。但是,當我在一個文本編輯器,像Kate例如鍵入它,將它保存並編譯它,我得到這個錯誤:
Error: Unbound value Array.make
我不明白爲什麼需要數組。在kate中作爲一個值,它將Array.make作爲終端中的一個函數。我用「.ml」擴展名保存了文件,並使用進行編譯。 有什麼建議嗎?謝謝。
他們都給了我相同的版本。版本3.11.2。我不認爲我覆蓋了屬於以前版本的任何文件。我剛剛在我的電腦上安裝了linux,所以我沒有安裝以前版本的ocaml。我通過輸入ocaml進行了驗證,它寫道ocaml尚未安裝,所以我只是安裝了它。此版本3.11.2。我嘗試Array.create,但我仍然遇到同樣的問題。你認爲這是因爲我使用的版本? – mkab 2011-03-27 18:04:31
@mktab它肯定應該使用版本3.11.2。版本3.12.0會告訴你它是模塊'Array'還是函數'make',它們是未綁定的,這是該版本帶來的許多小改進之一,但是你得到的錯誤仍然是一個謎。 – 2011-03-28 03:27:40
@mktab編譯器找不到文件.../lib/ocaml/array.cmi。也許它丟失了,或者你的發行版的軟件包是通過複製目標以外的文件來編寫的,而不是編譯器被配置爲安裝。如果是這種情況,你可以通過使用選項-I和-L來修復它,但是我'd建議從源頭重新編譯OCaml。 – 2011-03-28 03:36:21