Если у меня есть ввод кортежа, содержащего два списка целых чисел одинаковой длины, и я хочу, чтобы мой вывод был списком этих двух заархивированных списков, после извлечения этих двух списков из кортежа, как мне заархивировать каждый отдельный элемент в один список? Например, если я ввел twolists = ([1; 2; 3], [4; 5; 6]), то я хочу, чтобы мой вывод был [(1,4); (2,5); (3,6)]. Как заархивировать каждый элемент и добавить его в свои выходные данные? Имя и тип функции следующие:
let rec pairlists twolists = ...
val pairlists : 'a list * 'b list -> ('a * 'b) list = fun
Пока у меня есть:
let rec pairlists twolists =
let (l1, l2) = twolists in
let rec zip (l1,l2) =
match l1 with
|[] -> l2
|x :: xs -> x :: zip(l2, xs) in
twolists ;;
но это явно не то, что я хочу.
{}
в окне редактора. - person ivg   schedule 23.01.2020