https://codeiq.jp/magazine/2013/11/1475/
の回答を考えてみる