Я пытаюсь написать случайную функцию в OCaml, но есть проблема с выводом типа. Мерлин говорит мне, что l1
и l2
имеют тип 'a list list
, что неверно, потому что они только 'a list
. Почему он так утверждает?
let shuffle l1 l2 =
let rec scan l1 l2 acc =
match (l1, l2) with
| [],[] -> acc
| ([],h2::t2) -> scan [] t2 h2::acc
| (h1::t1, []) -> scan t1 [] h1::acc
| (h1::t1,h2::t2) -> scan t1 t2 h1::h2::acc
in scan l1 l2 []
;;