我有以下問題。從列表中,我必須將mod 3 = 0元素,mod 3 = 1元素和mod 3 = 2元素分隔爲3個不同的列表並返回這3個列表的列表。我的問題很明顯 - 我該怎麼做?有沒有這種我錯過的簡單規則?OCaml - 如何從列表中返回列表清單?
我至今並不多,但你去:
let separate xs =
let rec help xs i =
match xs i with
| [] _ -> []
| hd a -> if a mod 3 = 0 //HOW DO I RETURN
else if a mod 3 = 1
else
更新: 成品代碼:
let separate xs =
let rec help (list, i, xs1, xs2, xs3) =
match list with
| [] -> [xs1;xs2;xs3]
| head :: tail -> (if i mod 3 = 0 then help (tail, i+1, head::xs1, xs2, xs3)
else if i mod 3 = 1 then help (tail, i+1, xs1, head::xs2, xs3)
else help (tail, i+1, xs1, xs2, head::xs3))
in help (xs, 0, [], [], []);;
你能告訴我們你到目前爲止有什麼? – Marth 2014-10-27 11:00:45
我有點卡在一開始,因爲我不知道我該如何寫東西才能返回,但是肯定 - 在原評論中 – 2014-10-27 11:01:59