[OCaml] Łączenie list

androl7
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 27 paź 2015, o 14:09
Płeć: Mężczyzna
Lokalizacja: Polska

[OCaml] Łączenie list

Post autor: androl7 »

Witam
Mam problem z zadaniem:
Napisz funkcję łączącą dwie podane listy.
Elementy w liście wyjściowej mają występować naprzemiennie.
Zwróć szczególną uwagę na optymalność złożoności obliczeniowej i pamięciowej.
Przykład:
wywołanie: polacz [5;4;3;2] [1;2;3;4;5;6];;
wynik : [5;1;4;2;3;3;2;4;5;6]

Udało mi się stworzyć jedynie coś takiego ale to po prostu łączy 2 listy i nie wiem jak to zmodyfikować żeby dodało raz głowę z jednej listy raz z drugiej.

Kod: Zaznacz cały

let rec flatten listOfLists = 
	if listOfLists = [] then []
	else List.hd listOfLists @ flatten (List.tl listOfLists);;
Pozdrawiam
Ostatnio zmieniony 27 paź 2015, o 19:28 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
ODPOWIEDZ