Как создать рекурсивный список в OCaml

Я хотел бы реализовать аналог Haskellcycle функция.

Если я передаю элементы списка явно, это кажется тривиальным:

let cycle a b c =
  let rec l = a::b::c::l in
  l

cycle 1 2 3 генерирует рекурсивный список1, 2, 3, 1...

Но как создать рекурсивный список на основе другого обычного списка?

let cycle lst = ...

использование

cycle [1;2;3]

Ответы на вопрос(5)

Ваш ответ на вопрос