Я пытаюсь выяснить, что делает эта функция, и когда я запускаю ее в редакторе кода, она выдает мне синтаксическую ошибку в конце. Я пытался поставить скобки вокруг "let x" и некоторых других местах, но я в растерянности. Буду признателен за любую помощь в понимании, почему я получаю ошибку.
let rec map (f: 'a -> 'b) (y: 'a list): 'b list =
begin match y with
| [] -> []
| h :: t -> (f h) :: (map f t)
end in
let x = map (fun t -> (t + 1) [0; 1; 2] in
0 :: x