Рекурсивные функции и ошибки - PullRequest
0 голосов
/ 12 марта 2020

Я пытаюсь выяснить, что делает эта функция, и когда я запускаю ее в редакторе кода, она выдает мне синтаксическую ошибку в конце. Я пытался поставить скобки вокруг "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

1 Ответ

0 голосов
/ 12 марта 2020

Это то, что вы пытаетесь совершить sh?

let () =
  let rec map f y =
    match y with
    | [] -> []
    | h :: t -> (f h) :: (map f t)
  in
  let x = map (fun t -> t + 1) [0; 1; 2] in
  0 :: x
  |> List.iter (fun x -> Printf.printf "%d\n" x) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...