OCaml - 操作效率高吗?

时间:2013-10-30 01:26:24

标签: ocaml performance

我写了代码:

(h::(List.hd acc))::(List.tl acc)

这个操作有效吗? 你觉得怎么样?

1 个答案:

答案 0 :(得分:3)

如果我被要求在没有任何其他背景的情况下提高函数定义let f h acc = (h :: List.hd acc) :: List.tl acc的效率,我会说它已经足够有效了。

不过,我更喜欢使用模式匹配而不是List.hdList.tl。它更安全(你自然会发现必须特别处理acc = []的情况),并且比两个函数调用稍快:

let f h = function
  | [] -> invalid_arg "empty list"
  | xs::xss -> (h::xs) :: xss