`yield`で渡したブロックを再利用できると、もう少し綺麗になるんだけど...