scala版(いまいちscalaっぽくない)