stop using yield to call recursive func

#5 の件の修正です。`yield`だとスコープが変わってしまうので、仕方なく、lambdaを渡すようにしました。