akimachoのはてなブログ

ICTとデザインのためのブログ

『プログラミングの基礎』読書日誌-13日目-

はじめに

今日は,第11章 自然数再帰です.

自然数の定義

本書では,0も自然数の一つとしています.自然数は次のように定義されます.

・ 0は自然数である
・ nが自然数ならn+1も自然数である

n+1が自然数であることに,nが自然数であることを用いている部分が,自己参照となっています.n=0からはじめて,0+1=1,1+1=2,...と将棋倒しに自然数が定義されていきますね.

自然数に基づいた再帰関数

リストに基づいた再帰関数はパターンマッチを使うことで,firstとrestに分けていました.それに対し,自然数に基づいた再帰関数では,if文を用いて0のケースと1以上のケースに分けていきます.1以上の場合,n-1が再帰のケースになります.

練習問題

今回は,2問しかありませんでした.


gist1775acf197a8192b7957

おわりに

今回で再帰は一段落になります(第15章でまた出てきますが).再帰を使うことでコードが簡潔になるということを実感した一方で,まだまだ再帰に慣れてないという感想を抱きました.

プログラミングの基礎 (Computer Science Library)

プログラミングの基礎 (Computer Science Library)