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 に答える