我们可以在 ocaml 中定义一个参数为 0 的函数吗?

UnS*_*Sat 5 ocaml

在其他语言中,我们可以有一个不带参数的函数。ocaml 中可以有 0 个参数函数吗?

Jef*_*eld 7

OCaml 中的函数只有一个参数(忽略由于可选参数而导致的复杂性)。所以,你不能有一个没有参数的函数。

正如 @alfa64 所说,您可以将简单值视为不带参数的函数。但它总是具有相同的值(事实上,这使得它类似于纯函数)。

如果你想编写一个实际上不需要任何参数的函数(可能有副作用),传统上使用()它的参数:

# let p () = Printf.printf "hello, world\n";;
val p : unit -> unit = <fun>
# p ();;
hello, world
- : unit = ()
# 
Run Code Online (Sandbox Code Playgroud)