最近「DHTMLのイベント登録にonclick属性を使うか否か」という話題がホットになったのだけど、その中のコメントで「「無名関数」じゃなくて「匿名関数」というべき」というコメントを見かけたのだけど、私はむしろ「無名関数」の方がよいと考えたのでentry。
匿名実名問題ではなくて、匿名無名問題ね:-)
たしかに、現状ぐぐると「匿名関数」の方が「無名関数」よりも10倍も多い。
英語だと、その差はもっと開く。
しかし、よく考えてみると、匿名とは名前を匿う=隠すことではあっても名前そのものがないことではない。その点に留意すれば、匿名(anonymous)よりも無名(nameless)の方が表現としては適切ではないか。
ちなみに、匿名関数の別名としてクロージャー(closure)もよく使われている。が、本来のクロージャーは変数を内包(enclose)していなければならない。たとえば
var counter = 0;
window.setInterval(function(){
document.getElementById('counter').innerHTML = counter++;
}, 100);
のsetInterval()の第一引数はクロージャーだけど、
window.setInterval(function(){
document.getElementById('date').innerHTML = new Date();
}, 100);
はクロージャーではない。
その他、サブ(sub)とかラムダ(lambda)というあだ名もあるけど、前者はPerlコミュニティ、後者はLispコミュニティでないと通じない方言なので、やはり通常は無名関数、英語では nameless function と呼ぶのがよいとではないかと考える。
ところで、リテラル(literal)などを「無名データ」とか「匿名データ」と呼ばないのは何故だろう?
Dan the Man with too Many Functions to Name - So make it nameless if ok
このブログにコメントするにはログインが必要です。
さんログアウト
この記事には許可ユーザしかコメントができません。