2013年12月3日火曜日

いろふインスタンスの最大数を探る。

いろふアドベントカレンダー3日目です。

昨日は@kawakawa さんのirofさんとAR(拡張現実)で遊んでみよう♪ でした。

ちなみに去年はこんなの書いてました

さて。いろふさんと言えば、複数インスタンスですよね。昨日大阪の勉強会でご一緒したと思ったら、次の日は東京にいる、とかしょっちゅうで、いろふ複数インスタンス説が唱えられて久しいわけです。

と、いうことで、いろふインスタンスははたしていくつまで作ることができるのか、僕のMBP上のScalaのREPLで試してみましょう。ちなみにREPLはなんのチューニングもしていない、デフォルト状態です。

まずはいろふクラスを作りましょう。これが、すべてのインスタンスの元になります。

case class Irof(name:String, age:String, place: String)

型がすべてStringなのは、まぁ、ご愛嬌。

とりあえず、いくつかインスタンス作ってみましょう。

val irofs = List("osaka", "tokyo", "nagoya", "hokkaido").map(Irof("hirofumi nozaki", "unknown", _))

このくらいなら余裕です。
地名を指定するのも面倒なので、とりあえずこうして1000個くらい作ってみましょうか。

val irofs = (1 to 1000).map(p => Irof("hirofumi nozaki", "unknown", p.toString))

余裕です。

どうせなら、無限の世界に突入しちゃいましょう。いろふインスタンスに上限など設けてはいけません。
def xs(n: Int): Stream[Int] = n #:: xs(n + 1)
xs(1).map(p => Irof("hirofumi nozaki", "unknown", p.toString))
無限リストのmapですから、概念上、これでいろふインスタンスは無限に存在することになります。これでこそ僕らのいろふさんです。

0 件のコメント:

コメントを投稿