Я пытаюсь написать простую программу OCaml для продвижения вектора, то есть [1,2,3] переходит в [3,1,2] и так далее:
open Printf
let advance_list list =
match list with
|[] -> []
|h::t -> t::h
let () = List.iter (printf "%d ") (advance_list [1;2;3])
но Я получаю
File "rotate_vector.ml", line 13, characters 16-17:
13 | |h::t -> t::h
^
Error: This expression has type 'a but an expression was expected of type
'a list list
The type variable 'a occurs inside 'a list list
Я не понимаю ошибку. Для меня я возвращаю первый элемент, добавленный к началу h
, который является списком без первого элемента, который равен t