それ, SMLで出来るの?
http://d.hatena.ne.jp/qnighy/20100124/1264342447
ってどの機能かよく分からんけど, これで出来てると思う.
fun op+= (x,n) = let val _ = (x := !x + n) in x end infix 8 += fun incr_test () = let (* ここが一番めんどくさいorz * 時刻 -> 時刻(sec) -> LargeInt -> Int *) val curr = Int.fromLarge ((Time.toSeconds (Time.now ())) mod (Int.toLarge (valOf Int.maxInt))); (* 適当な値 * 時刻から算出したInt *) val seed = Random.rand(2839, curr) val x = ref 0 val y = ref 0 in let val i = ref 0 in while !i < 1000 do ( let val r = Random.randRange (0,1) seed (* 0|1 の乱数を生成 *) in (if r=0 then x else y) += 1 end; i := !i + 1 ) end; print ((Int.toString (!x)) ^ "," ^ (Int.toString (!y)) ^ "\n") end
このためにSML/NJ本家 に行ってみたところ,地味に開発が続いています. なにか凄い執念を感じます.
Windows用のソースに .cs ファイルとか見える…!ちょw
まだ当分, F#に道を譲る気は無いようですね.