qsort for ocaml

其实跟scheme很类似的表操作,实现起来也比较容易。

1 let rec qsort cmp lst =
2      match lst with
3      | [] -> []
4      | h::r ->
5              let less = List.filter (fun i -> (cmp i h) < 0) r in
6              let great = List.filter (fun i -> not ((cmp i h) < 0)) r in
7              (qsort cmp less) @ ( h::(qsort cmp great)) ;;

这里使用了List.filter来完成我们的工作,简化代码的编写。

原文地址:https://www.cnblogs.com/mathlover/p/2789656.html