1引数キーワードとoptional属性
2再帰呼び出し
3総称名