Scala Hack-a-thon #1

Scala Hack-a-thon #1 に参加しました。
やや遅刻気味で会場に到着すると...
みんな、黙々と自分のPCでコードを書いている...
twitterを見てみると...
みんな、twitterで会話している...


途中で yuroyoro さんが、異例の
リアルでも会話しても良いんですよ発言w


自分はimplicit conversion で
クラスメソッドっぽい事をやろうと思って
できなかったというのをやってました。


やりたい事 => 乱数がつまった配列を作りたい。
Rubyで言うと以下みたいな事。

Array.new(5) { rand }


最初にやったのは以下。

val r = new scala.util.Random
val noise = Array.make(5,r.nextFloat)

上記のコートは r.nextFloat の評価が1回しかされず
配列の要素は全て同じになってしまいました。


後日、調べた結果のおそらくの正解は以下。

val r = new scala.util.Random
val noise = Array.fromFunction(x=>r.nextFloat)(5)

微妙に不要な変数xが入ってしまって、まだ納得はできてないです...


当日やっていたのは implicit conversion で
Array objectにメソッド追加しようと、implicit conversion でやろうとしてましたが
なんか、うまいことできず時間切れ。


懇親会で yuroyoro さんに Array は finalize されてないから
そのまま implicit conversion 使わなくてもできるのでは??
と、ご指摘いただいたら、その通りでした。
また、今度、試してみる。