Swift Playgrounds

コードを学ぼう1【パターンをネストする】解答例と解説

パターンをネストする

解答例

func turnAround() {
  turnLeft()
  turnLeft()
}

func solveStair() {
  moveForward()
  collectGem()
  turnAround()
  moveForward()
  turnLeft()
}

solveStair()
solveStair()
solveStair()
solveStair()

解説

ネスト』と『分解』という言葉が出てきました。
分解とは、より大きな問題を、管理しやすい小さなピースに切り分けるプロセスのことをいいます。
この課題では、まず『振り返る』だけの関数turnAround()を作り、
次にそれを用いたsolveStair()を作ります。
このように、ひとまとめにした動作をさらに大きな動作でひとまとめにすることを、
『ネストする』といいます。
入れ子にするイメージです。
こうすることによって、solve(解決する)Stair(階段)で、一つ分の宝石ゲットして帰る動作が出来上がりました。
あとは、4回繰り返すだけ。
見やすくなりますね。

要点まとめ

・大きい問題を小さい問題に『分解』して解決しよう