再帰の事がよく分かりません
単純に文章としては「自身を呼び出す関数」と理解できるのですが
それが一体どういう状況で必要になるのか疑問です