wtorek, 30 stycznia 2018

Przeplot dwóch list - Standard ML

Treść zadania:

Napisać deklarację funkcji g:int list * int list → int list, g(x, y) = przeplot list x, y liczb całkowitych

Na przykład:
g([1,4,2,5],[1,3,5,7,9,11]) = [1,1,4,3,2,5,5,7,9,11]
g([1,2,3],[4,5,6]) = [1,4,2,5,3,6]
g([1,2,3,4,5],[6,7,8]) = [1,6,2,7,3,8,4,5]
g([],[1,2,3]) = [1,2,3]
g([1,2,3],[]) = [1,2,3]

Kod źródłowy:
fun append(x, y) = if null(x) then y else hd(x) :: append(tl(x), y)
 fun g(x, y) = if null(x) then y else if null(y) then x else append(append([hd(x)],[hd(y)]),g(tl(x),tl(y)));


Przypadki testowe:
g([1,4,2,5],[1,3,4,5,7,9,11]);
g([1,2,3],[4,5,6]);
g([1,2,3,4,5],[6,7,8]);
g([],[1,2,3]);
g([1,2,3],[]);

Brak komentarzy:

Prześlij komentarz