Как мне извлечь два списка из кортежа, содержащего два списка, прежде чем я заархивирую их? (используя OCaml) - PullRequest
0 голосов
/ 23 января 2020

Если у меня есть вход кортежа, содержащего два списка целых чисел одинаковой длины, и я хочу, чтобы мой вывод был списком этих двух списков в сжатом виде, то как мне сначала извлечь эти два списка из кортежа? Например, если мой ввод - twolists = ([1; 2; 3], [4; 5; 6]), то я хочу, чтобы мой вывод был [(1,4); (2,5); (3,6)]. Как сначала разделить кортеж на (например) l1 = [1; 2; 3] и l2 = [4; 5; 6]?

1 Ответ

0 голосов
/ 23 января 2020

Вы можете использовать сопоставление с образцом, чтобы получить компоненты кортежа. Например, эта функция принимает кортеж из двух целых и возвращает их сумму:

let add_uncurried tuple =
    let (a, b) = tuple in a + b

Другими словами, вы можете написать let (a, b) = tuple in ..., чтобы получить компоненты кортежа под именами a и b.

...