在 Ocaml 中,如果我不想使用变量,如何避免未使用的变量警告?

In Ocaml, how do I avoid an unused variable warning if I don't want to use the variable?

假设我在列表上定义一个递归函数,类似于:

let rec listFunc xs =
    match xs with
    | [] -> aThing
    | h :: t -> listFunc (tailFunc t)
;;

其中 tailFunc 是从列表到列表的一些其他函数。编译器会给我一个未使用的变量警告,因为我没有使用 h,但我不能只使用通配符,因为我需要能够访问列表的尾部。如何防止编译器给我警告?

您可以在 h 前加上下划线。

let rec listFunc xs =
    match xs with
    | [] -> aThing
    | _h :: t -> listFunc (tailFunc t)
;;

或者简单地说:

let rec listFunc xs =
    match xs with
    | [] -> aThing
    | _ :: t -> listFunc (tailFunc t)
;;

任何以 _ 开头的绑定都不会在范围内,不会给您未使用的变量警告。