セミコロンレスJavaで末尾再帰の最適化