OCaml中函数声明的语法

Sof*_*mur 8 ocaml

我想定义一个函数如下:

let f (a: int) (b: int) (c: int) (d: int): int =
  ...
Run Code Online (Sandbox Code Playgroud)

是否可以缩短签名而不使其成为元组?因为我仍然希望f有4个参数.

非常感谢你.

编辑1:我认为重复int4次是没用的,并且想象出let f (a, b, c, d: int): int目前实际上不允许的东西.

Pas*_*uoq 13

试试这个语法:

let g: int -> int -> int -> int -> int =
  fun a b c d -> 
     assert false
Run Code Online (Sandbox Code Playgroud)

它并不短,但如果你有很多这些,你可以定义type arith4 = int -> int -> int -> int -> int并使用该名称作为类型注释g.