2016-02-29 2 views
-1

Я пытаюсь составить список пар в ocaml, но проблема в том, что длина списков различна. Я не горяч, чтобы создавать пары (a, b), когда один из элементов не существует.Как слить файлы индекса Lucene?

+3

Пожалуйста, добавьте пример ввода и ожидаемого вывода, также, пожалуйста, поделитесь с кодом, который вы уже написали. – Istvan

+0

Алекс, притворись, что ты нас, что ты дал нам, чтобы уйти, кроме «напишите мне этот код» –

ответ

0

Скорее всего, вам придется создать тип инкапсуляции ситуации на различной длины,

type ('a,'b) combined = Both of 'a * 'b | Left of 'a | Right of 'b 

let rec zipwith xs ys = match xs,ys with 
    | x::xs,y::ys -> Both (x,y) :: (zipwith xs ys) 
    | x::xs, [] -> Left x  :: (zipwith xs ys) 
    | [], y::ys -> Right y :: (zipwith xs ys) 
    | [], []  -> [] 

# zipwith [1;2;3] [1;2];; 
- : (int, int) combined list = [Both (1, 1); Both (2, 2); Left 3] 

Вы должны сделать оптимизацию относительно хвост вызовов для этого работать на длинных списках, но это начало того, как подойти к проблеме.

Смежные вопросы