この関数は Ocaml で書きましたが、同じことを最初に末尾再帰を適用してからfold_left
.
let rec check fore list =
match list with
| [] -> [] | h :: t ->
if fore h
then h :: check fore t
else check fore t ;;
これは私がこれまでに行ったことです。指定されたパラメーターより大きいリスト (つまり、最初にリストが指定された場合) を返します。例:check (fun a -> a >= 6 )[5;4;8;9;3;9;0;2;3;4;5;6;61;2;3;4]
返品# - : int list = [8; 9; 9; 6; 61]
どんな助けでも大歓迎です。