この形のループはダイクストラさん曰く 1と1/2回ループと言って、
0回以上のループと1回以上のループを含意する重要なループです。

SRFIにすらないので、関数型言語らしい書き方があるかも思っていたけど、
ないみたいですね。

>>500 関数にするのならもう少しシンプルになりますよ。

>>502,503
なんてたって、schemeには継続とマクロと末尾呼び出しがありますね。

>>504 副作用ありだと問題がありますよ。