無限OF無限

http://www.kmonos.net/wlog/80.html#_0950071204

なんというか、大きさ不定の二次元配列を作るのにはどうしたらいいかってのを考えたときに
作ったことあるような気がする。


00 02 06 12 20
01 03 07 13 21
04 05 08 14 22
09 10 11 15 23
16 17 18 19 24


となってfって関数は


f n = if(x > y) then x^2+y else y^2+x+y


となります。


k.inabaさんがいうななめってのは、


00 02 05 09 14 20 27
01 04 08 13 19 26
03 07 12 18 25
06 11 17 24
10 16 23
15 22
21


無限リストから1つ取り出してそれを別なリストに入れる。と言う操作を1度する。
そのあと、そのリストの中のリストから1つだけ取り出して出力する。
ってことになると思います。


00 02 06 12 20
01 03 07 13 21
04 05 08 14 22
09 10 11 15 23
16 17 18 19 24


この場合はどうかというと、カウンタを0にしておきます。
1つずつリストを読み込みます。カウンタ分だけ読み込んだ行の一気に出力します。
そしてカウンタを1つ勧めます。
その行を全体のリストに入れます。全体のリストから1つずつ出力します。


こうすると、無限の大きさを持つリストだけど、n * n の大きさの配列を
出力することができます。