string reverse(string str) pure nothrow
{
string reverse_impl(string temp, string str) pure nothrow
{
if (str.length == 0)
{
return temp;
}
else
{
return reverse_impl(str[0] ~ temp, str[1..$]);
}
}
return reverse_impl("", str);
}
私の知る限り、このコードはテールコール最適化の対象となるはずですが、DMD が実行しているかどうかはわかりません。末尾呼び出しの最適化をサポートしている D コンパイラはどれですか?また、この関数でそれを実行しますか?