元素的尾递归总和

时间:2019-03-13 02:03:21

标签: f# pattern-matching tail-recursion

我目前正在尝试学习F#中的尾递归,所以说我有一个函数,该函数接受一个列表,将每个元素乘以3,然后得到列表的总和。哪些代码看起来像这样

let calc L = L |> List.map (fun x -> (x*3)) |>  List.sum

如何将它与辅助函数一起设置为尾递归函数。

let _calc result L = 
  match L with 
  | [] -> result
  | hd::tl -> ???

let calc L = 
  match L with 
  | [] -> raise (System.ArgumentException("List cannot be empty"))
  | hd::tl _calc hd tl 

0 个答案:

没有答案