Sat Oct 5 23:07:03 JST 2013

本日のAtCoder難しかった

http://arc015.contest.atcoder.jp/standings

ABはいつも解けるのはいいけど,Cがかすりもしなかった

で,テンプレートとしてprototypeを追加しまくってると, よくあるあの for-in の問題があって,今まで偶然にも本番中に衝突はしなかったけれど いつやってしまってもおかしくないのでこんなのを追加

function forEach(o,f){ for (var x in o) if (o.hasOwnProperty(x)) f(x,o[x]); }
function forIn(o,f){ for (var x in o) if (o.hasOwnProperty(x)) f(x); }
function forOf(o,f){ for (var x in o) if (o.hasOwnProperty(x)) f(o[x]); }

構文を追加出来ない以上,構文の {} の中身を関数で渡すしかない Scheme の for-each方式だ 逆にSchemeは構文が追加できるんだからそういうのがSRFIにあってもいいのにな

(for-each i in ls
  body ...)

って方が見やすいのに.CommonLispっぽくてイヤなのかな

forOf({"cympfh" : 132, "hoge" : 42, "ampeloss" : 92 }, function(x) {
  console.log(x);
});
inoremap <c-f> function

としてるの捗る

追記 (Tue Oct 8 17:49:37 JST 2013)

forEach関数は ls.forEach と被ってるし引数の順序逆だしなので消します