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