У меня есть ~ 10 функций, над которыми я хочу писать тесты, все они принимают два аргумента одного типа. Я думал, что смогу автоматизировать процесс немного, создав список всех возможных классов ввода и просто распечатав все возможные варианты с повторениями в текстовый файл. Мой код, howewer, не совсем выполняет эту работу, только перечисляя варианты, начинающиеся с «a».OCaml - найти все возможные варианты с повторениями
let x = ["a "; "b "; "c "; "d "; "e "; "f "; "g "; "h "]
let oc = open_out file
let rec test l1 l2 =
match l1 with
|[] -> 0
|h1::t1 ->
match l2 with
|[] -> test t1 l2
|h2::t2 ->
fprintf oc "%s\n" (add^h1^h2);
fprintf oc "%s\n" (sub^h1^h2);
fprintf oc "%s\n" (mul^h1^h2);
fprintf oc "%s\n" (div^h1^h2);
test l1 t2;;
test x x;
close_out oc;