Witam Jestem bardzo nowy w F # i programowaniu. Próbuję się teraz tego nauczyć i zapisałem się na kurs, ale wciąż nie wydaje mi się, że to rozumiem. pls pomoc. Im próbuje przepisać poniższy kod:przepisywanie kodu za pomocą dopasowywania do wzorca F #
let rec msort xs =
let sz = List.length xs
if sz < 2 then xs
else let n = sz/2
let ys = xs. [0..n-1]
let zs = xs.[n..sz-1]
in merge (msort ys) (msort zs)
//************ Utility-funktion merge
let rec merge xs ys = if List.isEmpty xs then ys else if
List.isEmpty ys then xs else let x = List.head xs
let y = List.head ys
let xs = List.tail xs
let ys = List.tail ys
in if x < y then x :: merge xs (y::ys)
else y :: merge (x::xs) ys </i>
Moje rozwiązanie - co nie jest praca:
let rec msort xs =
let sz = List.length xs
match sz with
| sz < 2 -> xs
|_ -> n = sz/2
let ys = xs. [0..n-1]
let zs = xs.[n..sz-1]
in merge (msort ys) (msort zs)
//************ Utility-funktinen merge
let rec merge xs ys = match xs with |[] -> [ys]
match ys with
|[] -> [xs] |_ ->
let x = List.head xs
let y = List.head ys
let xs = List.tail xs
let ys = List.tail ys if x < y then x :: merge xs (y::ys)
|_ ->
y :: merge (x::xs) y
Witamy w F # i programowaniu. Naprawiłem formatowanie twojego pytania. Jeśli klikniesz słowo "edytuj ... temu" powyżej, zobaczysz, co zmieniłem, aby wyświetlało się poprawnie. Następnym razem użyj przycisku kodu przykładowego w edytorze do bloków kodu. Ikona wygląda tak: '{}' – TheQuickBrownFox
Dziękuję bardzo aloisdg! Na pewno pamiętam, aby sformatować mój kod następnym razem i bardzo dziękuję za naprawienie tego za mnie i za odpowiedź! –