Ho avuto un piccolo problema nell'implementare gli array in ocaml. Ad esempio, quando sul terminale (konsole) e digitareImplementazione Ocaml
let tab = Array.make 5 6;
Ho
val tab : int array = [|6; 6; 6; 6; 6|]
come uscita. Quindi crea un array con una lunghezza di 5 e riempie tutti i casi con 6. Ok, capisco quella parte. Ma quando si digita su un editor di testo come kate per esempio, salvarlo e compilarlo io ottenere questo errore:
Error: Unbound value Array.make
Non capisco perché ci vuole Array. crea come valore in kate e prende Array.make come una funzione nel terminale. Ho salvato il file con l'estensione ".ml" e lo compilo usando ocamlc -o test name_of_file
. Qualche suggerimento, per favore? Grazie.
Entrambi mi hanno dato la stessa versione. Versione 3.11.2. Non penso di aver sovrascritto alcun file appartenente a una versione precedente. Ho appena installato linux sul mio pc, quindi non ho avuto la versione precedente di ocaml. Ho verificato semplicemente digitando ocaml e ha scritto che ocaml non è ancora installato, quindi l'ho appena installato .. questa versione 3.11.2. Ho provato Array.create ma ho ancora lo stesso problema. Pensi che sia dovuto alla versione che sto usando? – mkab
@mktab Dovrebbe funzionare sicuramente con la versione 3.11.2. La versione 3.12.0 ti direbbe se è il modulo 'Array' o la funzione' make' in esso che non è associata, uno dei tanti piccoli miglioramenti apportati da questa versione, ma l'errore che stai ottenendo rimane un mistero. –
@mktab È probabile che il file .../lib/ocaml/array.cmi non venga trovato dal compilatore. Forse manca o il pacchetto della distribuzione è stato preparato in modo improprio copiando i file in una destinazione diversa da quella in cui il compilatore è stato configurato per l'installazione. Se è il caso, è possibile correggerlo utilizzando le opzioni -I e -L, ma io consigliamo di ricompilare OCaml dai sorgenti. –