我正在尝试创建一个过滤函数,它接收一个函数作为参数和一个列表,并返回另一个带有过滤结果的列表。
let rec filter bool_func l r =
match l with
| [] -> r
| h::t -> if bool_func h then filter bool_func t (h::r)
else filter bool_func t r in filter bool_func t [];;
关键字in
与之前的let
一起生成本地定义,以便在in
之后的表达式中使用。因此,您有filter
的本地函数定义,后跟表达式filter bool_func t
。事实上,在let
之外,没有任何值(你向我们展示)名为bool_func
或t
。