これくらいなら引数に状態を持たせて各状態を手続きで表せばよくね?