それ, SMLで出来るの?

PerlC++にしかできないような気がするアノ機能

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#に道を譲る気は無いようですね.