我目前正在尝试学习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