2013-10-30 59 views

回答

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