我在处理一个ocaml项目时发现了一些我不太理解的东西。
假设我同时使用OCaml标准库中的Array和List模块。它们都实现了函数length,但类型不同。 在List模块中,它的类型如下:
当我尝试在列表上使用
由于OCaml是一种强静态类型语言,所以我想知道为什么编译器不知道我想使用列表模块的长度函数,因为我声明我正在使用两个模块。
假设我同时使用OCaml标准库中的Array和List模块。它们都实现了函数length,但类型不同。 在List模块中,它的类型如下:
length: a' list -> int
在Array
模块中,它的类型为:
length: a' array -> int
但是我想通过使用 open
关键字,在同一个模块中同时使用这两个模块:
open List
open Array
当我尝试在列表上使用
length
函数时,编译过程中出现了类型错误。由于OCaml是一种强静态类型语言,所以我想知道为什么编译器不知道我想使用列表模块的长度函数,因为我声明我正在使用两个模块。
a'数组-> int
。 - Joseph Elcid