我做了这个代码:
let rec foo1 z = function
| [] -> []
| x::xs when x = z -> x::(foo1 x xs)
| x::xs -> foo1 z xs
但我想要这个函数的更复杂版本,其中包含一个类型int -> int -> bool
为第一个参数的新函数。此函数将针对列表的所有元素测试整数参数,应用运算符时产生 true 的元素应放置在返回列表中
例子:
let eq x y = x = y
let lt x y = x < y
let gt x y = x > y
foo2 eq 2 [1;2;4;2;5] => [2;2]
foo2 lt 2 [1;2;4;2;5] => [4;5]
foo2 gt 2 [1;2;4;2;5] => [1]