ラムダ関数や高階関数については別の所で聞いた方がいいとおもう