((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');;
どの関数を使用して適切な形式のインターリーブを実現できるかを誰かに説明してもらえますか。なぜこのようにしようとしているのかと聞かれた場合に備えて、再帰とリストについては学んでいません。ありがとうございます。