1
學習中期課程並正在瀏覽一些舊的考試題目。這其中沒有一個解決方案發布,並絆倒了我:OCaml遞歸函數int list - > int - >(int list * int list)
partition
:INT列表 - > INT - >(INT列表* INT表)把它的 第一個參數爲兩個列表,包含所有要素一個都不能少它的第二個參數爲 ,其他所有大於或等於第二個參數的元素爲 。partition
[5; 2; 10; 4] 4 =([2], [5; 10; 4])
哦,和我應該能夠找到該溶液而不使用輔助功能
這裏是據我已經得到了:
let rec partition l n = match l with
| [] -> ([], []) (* must return this type *)
| x :: xs -> if x < n then (* append x to first list, continue recursing *)
else (* append x to second list, continue recursing *)
通常,我會使用一個輔助功能與一個額外的參數來存儲對名單我建的,但不能在這裏完成。我有點卡住