Xin chào Im rất mới với F # cũng như lập trình. Im cố gắng để tìm hiểu nó ngay bây giờ và đã ghi danh vào một khóa học nhưng tôi vẫn không có vẻ để có được nó. xin giúp đỡ. Im cố gắng để viết lại đoạn mã sau:viết lại mã bằng cách sử dụng mẫu phù hợp với 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>
Giải pháp của tôi - mà isnt làm việc:
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
Chào mừng bạn đến với F # và để lập trình. Tôi đã sửa định dạng câu hỏi của bạn. Nếu bạn nhấp vào liên kết "đã chỉnh sửa ... trước đây" ở trên, bạn có thể thấy những gì tôi đã thay đổi để hiển thị chính xác. Lần sau, sử dụng nút mẫu mã trong trình chỉnh sửa cho các khối mã. Biểu tượng trông giống như thế này '{}' – TheQuickBrownFox
Cảm ơn bạn rất nhiều aloisdg! Tôi chắc chắn sẽ nhớ định dạng mã của tôi lần sau và cảm ơn bạn rất nhiều vì đã sửa nó cho tôi và để trả lời! –