"模式预期"在OCaml模式中与变体匹配

时间:2017-01-15 16:34:18

标签: pattern-matching ocaml variant

尝试编译以下代码段时:

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类型的值,但我要求我放置一个模式。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:6)

val是一个Ocaml关键字 - 例如,只需将val改为v即可修改您的代码。