如何在输入元组ocaml上进行模式匹配

How to pattern match on input tuples ocaml

比如我有代码

let add_next (data: int * int * int list) : int =

然而,数据这个词真的很含糊,我希望能够在函数头中命名前两个整数,然后是列表,同时保留 int * int * int list 的类型。如何做到这一点?

OCaml version 4.01.0

#  let add_next ((first, second, l): int * int * int list) : int = first;;
val add_next : int * int * int list -> int = <fun>

如果您需要传递 data 元组而不需要重建它,请使用 as 结构:

# let add_next ((first, second, l) as data: int * int * int list) : int =
    ignore data;
    first;;
val add_next : int * int * int list -> int = <fun>