"Pattern expected" 在 OCaml 模式中与变体匹配

"Pattern expected" in OCaml pattern matching with variants

尝试编译以下代码段时:

type 'a frame = Empty | Frame of string * 'a * 'a frame

let rec searchFrame f s = match f with
  | Empty -> None
  | Frame(x, val, fr) -> if x == s then
                           Some(val)
                         else
                           searchFrame fr s;;

我在第二个匹配案例中收到错误 Error: Syntax error: pattern expected.,对应于 val。我不知道我在这里做错了什么:基本上 val 应该对应于类型 'a 的值,但我被要求放置一个模式。我该如何解决?

val 是一个 Ocaml 关键字 - 只需通过将 val 更改为 v 来修改您的代码。