せっかく lisp なんだから無限ループも再帰で書くべき