1
我想將整數列表轉換爲遞歸函數中的列表元組。將整數列表轉換爲列表元組
比方說,我有一個整數爲[1;2;3;4;5;6;7;8]
的名單,我希望把它變成([1;3;5;7],[2;4;6;8])
分賠率和埃文斯在不同的側面
我面臨着很多問題,如預期的結果是'a list * 'a list
和我有一個'b * 'c
即使tho 'b & 'c
是整數列表。
我想將整數列表轉換爲遞歸函數中的列表元組。將整數列表轉換爲列表元組
比方說,我有一個整數爲[1;2;3;4;5;6;7;8]
的名單,我希望把它變成([1;3;5;7],[2;4;6;8])
分賠率和埃文斯在不同的側面
我面臨着很多問題,如預期的結果是'a list * 'a list
和我有一個'b * 'c
即使tho 'b & 'c
是整數列表。
既然你的遞歸函數專門問..:
let partitionNumbers nums =
let rec impl odds evens = function
| [] -> odds, evens
| n::ns when n % 2 = 1 -> impl (n::odds) evens ns
| n::ns -> impl odds (n::evens) ns
List.rev nums |> impl [] []
然而,更地道的做法是(如幾乎 -always)使用高階函數:
let partitionNumbers = List.partition (fun n -> n % 2 = 1)
燦你向我們展示你迄今爲止的代碼? – pad
那麼我有的代碼是不同的,是別的東西的一部分,但我可以寫一個示例代碼; 讓REC oddEven LST 匹配LST與 [] - >([],[]) | X :: XS - >如果(X%2 = 0),那麼... 否則如果(X%2> 0)然後... ;;; 我是f#的新手,現在有點卡住了。 –
您的代碼片段不完整,並且不顯示您面臨的問題。請考慮添加一個完整且有用的示例。 – pad