我们可以在OCaml中定义函数内部的类型吗?
我是OCaml的新手。我想定义一个只在一个函数中使用的类型。我不想让它在该功能之外可用。我们能在这个函数中定义它吗?或者有其他方法可以实现同样的效果吗?如果您有最新版本的OCaml,您可以使用本地模块:我们可以在OCaml中定义函数内部的类型吗?,ocaml,Ocaml,我是OCaml的新手。我想定义一个只在一个函数中使用的类型。我不想让它在该功能之外可用。我们能在这个函数中定义它吗?或者有其他方法可以实现同样的效果吗?如果您有最新版本的OCaml,您可以使用本地模块: let f x = let module Local = struct type t = A | B end in ... 更自然的做法是在顶层定义类型,并将其从.mli中删除:这样会使其全局隐藏,尽管文件中的其他代码可以看到它。并且您可以打开本地模块。
let f x =
let module Local = struct
type t = A | B
end in
...
更自然的做法是在顶层定义类型,并将其从
.mli
中删除:这样会使其全局隐藏,尽管文件中的其他代码可以看到它。并且您可以打开本地模块。