wtorek, 30 stycznia 2018

Funkcja listy - Standard ML

Treść zadania:
Napisać deklarację funkcji f : int list → int list określonej następująco:

f(x) = lista otrzymana z listy x przez podzielenie wszystkich liczb parzystych w x przez 2 i powiększenie wszystkich liczb nieparzystych na liście x o 2.

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

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


Przypadek testowy:
f([1, 2, 3, 4, 5, 6]);


Brak komentarzy:

Prześlij komentarz