有没有更好的方法来编写这个过滤函数?

Is there a better way to write this filter function?

我应该创建一个函数,它接受一个列表和一个范围,并将列表过滤到该数字范围内。这是我目前所拥有的:

let filter_range (nums : int list) (range : int * int) : int list =
  match range with
  | (a, b) -> if a > b then []
    else List.filter (fun (x : int) -> 
    if a <= x && x <= b then true else false) nums ;;

我觉得这样可以更简洁,欢迎任何建议!

你在这里:

let filter_range nums (lo, hi) =
  List.filter (fun x -> lo <= x && x <= hi) nums