Шаблон, ожидаемый при сопоставлении шаблона OCaml с вариантами

При попытке скомпилировать следующий фрагмент:

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, но вместо этого меня просят разместить шаблон. Как я могу это решить?


person Francesco Bertolaccini    schedule 15.01.2017    source источник
comment
val - это ключевое слово ocaml... изменить на sth else   -  person Pierre G.    schedule 15.01.2017
comment
Это решило это! Вы можете опубликовать это как ответ, чтобы я мог принять его как правильный.   -  person Francesco Bertolaccini    schedule 15.01.2017


Ответы (1)


val — это ключевое слово Ocaml — просто измените свой код, заменив, например, val на v.

person Pierre G.    schedule 15.01.2017