>>242
ループカウンタなどを累積引数として関数の引数に追加すれば、破壊的代入を使わずに末尾再帰できる
そもそもループを破壊的代入を使って表現する必要があるのは
末尾再帰最適化が仕様にないCommonLispやEmacsLispで
それらもループマクロとして表現しているので破壊的代入は隠蔽されている
http://ideone.com/aSVmkC