在查看Ocamel中的模块文档时,例如在Graphics Module中有类似的内容
val close_graph : unit -> unit
或者在交互模式下编写函数时:
# let x () = 3;;
val x : unit -> int = <fun>
有val x : unit -> int = <fun>
,什么是val
,它是用例?
答案 0 :(得分:3)
val
是OCaml中的关键字,具有多种用途。
您提到的情况本质上都是在模块签名中使用val
来指定出现在模块中的值。值是函数和表达式之类的东西。 (类型不是模块中可以出现的值的例子。)
您可以在OCaml手册的Section 7.10中阅读有关模块签名的信息。
非终结符 的第一个变体是以val
开头的变体。
(在顶层,当您在定义中键入内容时,您将创建一个模块。因此,顶层正在使用签名样式语法来显示您已定义的内容。所以在我看来仍然如此。)