例子:split [1;3;2;4;7;9];;
輸出:([1;3;7;9], [2;4])
F# - 分裂列表分爲奇偶列出的元組(由元素,而不是位置)
我是新來的F#,我無法弄清楚。
不能使用內置函數partition
。
這是我到目前爲止有:
let rec split xs =
match xs with
| [] -> [], []
| xs -> xs, []
| xh::xt -> let odds, evens = split xt
if (xh % 2) = 0 then xh::odds, xh::evens
else xh::odds, evens
固定碼:
let rec split xs =
match xs with
| [] -> [], []
| xh::xt -> let odds, evens = split xt
if (xh % 2) = 0 then odds, xh::evens
else xh::odds, evens
*感謝@TheInnerLight指出我的錯誤:無法訪問的情況和不必要的修改賠率
一個建議的詞,因爲這似乎是作業:你應該告訴你的教授,你要求在堆棧溢出的幫助,以及你得到的幫助。做到這一點的最佳方法是在你的作業的評論中包含一個指向這個問題的鏈接 - 'https:// stackoverflow.com/q/44379239 /' - 根據你的教授的政策在尋求幫助時,您可能會也可能不需要這樣做,但完全披露您在做家庭作業時獲得的任何幫助總是一個好主意。 – rmunn
感謝您編輯此問題以幫助其他將來可能找到它的人。然而,在Stack Overflow中,不需要在問題標題中加入「(已解決)」:您已通過給它一個綠色複選標記來接受答案,這足以說明這一事實,實際上人們更喜歡* not *有「(已解決)」提出問題標題。不過,你願意這樣做是值得讚賞的。 :-) – rmunn