リストを特定のポイントまでパーティション分割するために、これを書いたのはtakeWhile
とpartition
の間のクロスのようなものです。 rev
を呼び出すに頼るよりもリンクされたリストパーティション関数とその逆の結果
> partitionWhile ((>=) 5) [1..10];;
val it : int list * int list = ([5; 4; 3; 2; 1], [6; 7; 8; 9; 10])
その他、最初のリストがあることだろう。この関数は書くことができます方法があります:
let partitionWhile c l =
let rec aux accl accr =
match accr with
| [] -> (accl, [])
| h::t ->
if c h then
aux (h::accl) t
else
(accl, accr)
aux [] l
唯一の問題は、「とら」の項目が逆転しているということです正しい順序で?
すべての努力をいただきありがとうございます! –