Tuve un pequeño problema al implementar arreglos en ocaml. Por ejemplo, cuando en el terminal (Konsole) y de tipo IImplementación de Ocaml
let tab = Array.make 5 6;
tengo
val tab : int array = [|6; 6; 6; 6; 6|]
como una salida. Entonces crea una matriz con una longitud de 5 y llena todos los casos con 6. Está bien, entiendo esa parte. Pero cuando lo escribo en un editor de texto como Kate por ejemplo, guardarlo y compilarlo que me sale este error:
Error: Unbound value Array.make
No entiendo por qué se toma la matriz. hacer como valor en kate y toma Array.make como una función en la terminal. Guardé el archivo con la extensión ".ml" y lo compilé usando ocamlc -o test name_of_file
. ¿Alguna sugerencia por favor? Gracias.
Ambos me dieron la misma versión. Versión 3.11.2. No creo que haya sobrescrito ningún archivo perteneciente a una versión anterior. Acabo de instalar Linux en mi pc, así que no tenía una versión anterior de ocaml. Lo verifiqué simplemente escribiendo ocaml y escribió que ocaml aún no está instalado, así que simplemente lo instalé ... esta versión 3.11.2. Intenté Array.create pero todavía tengo el mismo problema. ¿Crees que es por la versión que estoy usando? – mkab
@mktab Definitivamente debería funcionar con la versión 3.11.2. La versión 3.12.0 le diría si se trata de un módulo 'Array' o una función' make' contenida en él, una de las muchas pequeñas mejoras que aporta esta versión, pero el error que está recibiendo sigue siendo un misterio. –
@mktab Es probable que el compilador no encuentre el archivo .../lib/ocaml/array.cmi. Tal vez falta, o el paquete de su distribución se preparó incorrectamente copiando archivos en un destino diferente al configurado para ser instalado en el compilador. Si es el caso, puede solucionarlo usando las opciones -I y -L, pero recomendaría volver a compilar OCaml de las fuentes. –