私はパスカルで再帰を学ぶしようとしている、と私は再帰の文字列を反転するには、このコードを持っていると、文字列を反転:パスカル:再帰
Function Invert (ch:string) : string;
begin
if ch='' then
Invert:=''
else
Invert:=copy(ch,length(ch),1)+Invert(copy(ch,1,length(ch)-1));
end;
誰もが一歩、ここで何が起こっているのか私に説明できますステップ。 ありがとうございます。
私はこれが練習であることを望みます。なぜなら、文字列に対して再帰を使用することは非常に悪い考えです。制限されたスタックサイズは、長い文字列では失敗することを意味します。 'copy'、' + 'は膨大な量のヒープ割り当てが必要です。最後に、フリーパスカル関数呼び出しで文字列の参照カウントを更新するのは非常に非効率的です。 – BeniBela