Mam problem z następującym zadaniem:
Napisz funkcję rozdzielającą listę wejściową na trzy podlisty:
- W pierwszej podliście mają znajdować się wszystkie elementy podzielne przez 10.
- W drugiej podliście mają znajdować się wszystkie elementy podzielne przez 5.
- W trzeciej podliście mają znajdować się wszystkie pozostałe elementy.
Porządek elementów musi być zachowany. Wynik zwróć w postaci trójki list.
Przykład:
- wywołanie:
natrzy [20;21;25;30;40];;
- wynik:
([20;30;40],[20;25;30;40],[21])
Jak na razie mam coś takiego:
let rec natrzy list ={
if list=[] then []
else if List.hd list mod 10 = 0 then natrzy @ List.tl list
else if List.hd list mod 5 = 0 then natrzy @ List.tl list
else list
}
Wydaje mi się, że warunek mam dobry tylko nie wiem jak połączyć wybrany element z nowo powstała listą (nie wiem czy to ma sens co napisałem w programie...).
Pozdrawiam