Я создал функцию (mergesort) в ocaml, но когда я ее использую, список инвертируется.OCaml mergesort и время
Кроме того, я хочу рассчитать время, которое система принимает для расчета, как я могу это сделать?
let rec merge l x y = match (x,y) with
| ([],_) -> y
| (_,[]) -> x
| (h1::t1, h2::t2) ->
if l h1 h2
then h1::(merge l t1 y)
else h2::(merge l x t2);;
let rec split x y z = match x with
| [] -> (y,z)
| x::resto -> split resto z (x::y);;
let rec mergesort l x = match x with
| ([] | _::[]) -> x
| _ -> let (pri,seg) = split x [] []
in merge l (mergesort l pri) (mergesort l seg);;
mergesort (>) [2;6;1;8];;
- : int list = [8; 6; 2; 1]
timing: Я всегда хотел написать a/proc/self/stat parser ... –