0

假设我有这个以伪代码形式反转列表的函数:

def function reverse( list ) :
if ( empty(list) ) 
    return empty_list;
else 
    return append( 
        reverse( list(2, lenght) , 
                 list(1)));

此代码不是尾递归的;我怎样才能让它尾递归?

4

1 回答 1

-1

请参阅:尾调用

对于F#

let map f l =
    let rec loop acc = function
        | [] -> List.rev acc
        | x::xs -> loop (f x::acc) xs
    loop [] l

用于反转字符串

于 2012-04-27T16:23:33.713 回答