Parenist養成ゼミ: 演習課題5
この記事は、Parenist養成ゼミシリーズの記事である。
今回は二次元配列ならぬ、二次元リストを題材とした。
A LISP programmer knows the value of everything, but the cost of nothing.
-- Alan Perlis
課題
以下の課題を解け。ただし、参照透過性のある関数を実装する際にはテストも実装すること。
二次元配列に相当するデータ構造を考案し、以下の関数を作成せよ。
- 二つの自然数を受け取り、二次元配列を返す関数
make-matrix
- 二つの自然数
i
,j
を受け取り二次元配列の成分(i, j)
の値を返す関数matrix-get
- 二つの自然数
i
,j
と任意の値x
を受け取り二次元配列の成分(i, j)
に値x
を設定する関数matrix-set
- 二次元配列を受け取り、標準出力に中身を出力する関数
matrix-show
- 二つの自然数を受け取り、二次元配列を返す関数
- コンウェイのライフゲームをシミュレーションする関数
game-of-life
を作成せよ。