我正在尝试创建一个函数,它交错一对三元组,例如 ((6, 3, 2), (4, 5 ,1)) 并从这个交错中创建一个 6 元组。我做了一些研究,但可以理解交错应该如何工作,所以我自己尝试了一些东西,最终得到了一个创建 6 元组但不是以正确的交错方式的代码。这是我的代码
let interleave ((a, b, c), (a', b', c')) =
let sort2 (a, b) = if a > b then (a, b) else (b, a) in
let sort3 (a, b, c) =
let (a, b) = sort2 (a, b) in
let (b, c) = sort2 (b, c) in
let (a, b) = sort2 (a, b) in
(a, b, c) in
let touch ((x), (y)) =
let (x) = sort3 (x) in
let (y) = sort3 (y) in
((x),(y)) in
let ((a, b, c), (a', b', c')) = touch ((a, b, c), (a', b', c')) in
(a, b', a', b, c, c');;
有人可以向我解释如何使用哪些功能来实现适当的交错形式。我还没有了解递归和列表,以防你问我为什么要这样做。已经谢谢你了。