假设我在伪代码中使用了这个函数来反转列表:
def function reverse( list ) :
if ( empty(list) )
return empty_list;
else
return append(
reverse( list(2, lenght) ,
list(1)));
此代码不是尾递归的; 我怎么能让它尾递归?
答案 0 :(得分:-1)
请参阅:Tail Call
let map f l =
let rec loop acc = function
| [] -> List.rev acc
| x::xs -> loop (f x::acc) xs
loop [] l