czwartek, 8 lutego 2018

Parzyste nieparzyste - Standard ML

Treść zadania:

Zadeklarować funkcję f: int list → int list określoną następująco:

f(x) = lista otrzymana z listy x poprzez następujące przestawienie:
najpierw liczby parzyste występujące w x,
potrem liczby nieparzyste występujące w x

Na przykład:
f([4,7,2,1,2,3,7,5,2]) = [4,2,2,2,7,1,3,7,5]

Kod źródłowy:
fun append(x, y) = if null(x) then y else hd(x) :: append(tl(x), y)
fun even(x) = if null(x) then x else if hd(x) mod 2 = 0 then append([hd(x)],even(tl(x))) else even(tl(x))
fun odd(x) = if null(x) then x else if hd(x) mod 2 = 1 then append([hd(x)],odd(tl(x))) else odd(tl(x))
fun f(x) = append(even(x),odd(x));


Dane testowe:
f([4,7,2,1,2,3,7,5,2]);


Brak komentarzy:

Prześlij komentarz