ocaml - 为什么有些 OCaml 函数以 () 作为参数?

标签 ocaml

Unix 模块中的示例:

val environment : unit -> string array

为什么不只是:
val environment : string array

?

最佳答案

因为它表示一个函数,该函数将单元类型的值作为其参数。单位类型仅由值“()”占据。这通常用于表示该函数将执行某种 IO 或引发副作用,并且不需要输入。您提供的第二种类型签名是值的签名,而不是可以应用的函数。如果某个表达式绑定(bind)到此名称,则该表达式将在值绑定(bind)发生时计算,而不是在它被引用时计算(就像函数应用程序的情况一样)。

关于ocaml - 为什么有些 OCaml 函数以 () 作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3494668/

相关文章:

module - 在 OCaml 中从 Map 扩展模块

regex - Ocaml - 正则表达式匹配以逗号分隔的单词不起作用

python - 用 Python 编写第一个解释器——OCaml 语言的选择

ocaml - 在OCaml中添加到字符串映射

parsing - 使用 Ocaml Opal 的递归 Lisp 解析器

.net - 在没有 C# 的情况下从 F# 学习 .NET

module - OCaml 模块 : include AND open?

ocaml - 在 OCaml 中打印元组

ocaml - 如何使用 OCaml 获取机器上的内核数?

module - 在 OCaml 中,是否可以根据 Set 定义 Map?