#ぷんぷんっ!
「forやめろ」なんて記事を見かけたので。nextTickについて調べていてこの記事から知ったのだが。2014年ならまだ賞味期限、かな?
あれはすごく数学的なもんだ。ごちゃごちゃ機能が多すぎるなんてゆーな。一応C/C++/Java/Javascriptの構文で書く。Basicのはアレはちょっち綺麗じゃない。
for(初期化;条件;イテレータ)
なんて読むからごちゃごちゃする。一応、評価される順に並べ替えてあるからね。
for(初期化;イテレータ)
コレって、数学的帰納法だろ? 整列集合の表現として、これほど適切なものはあるまい。
で、プログラミングの場合、たいてい有限な集合を表したいから、条件をつける。
for(初期化;イテレータ)where(条件)
こう書けば分かりやすいかな? forが嫌いなら、そーゆーsugar用意すれば良いと思うよ。プリプロセッサとかでさ。
元記事、数論の人なんだろ? ペアノおじさんの霊にしばかれるぞ。
#余談
ついにこの切れ味の良い記事も、蛇足を付け加えることになってしまった。元記事の「1から100の整数を出力してください。ただし5つの異なる方法を用いて」という問題に対する、最も本質的な解は上記の通り①forだ。そして、最も高速な解は② console.log '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100' だと思っていた。ここまではふざけてないよ。最適化勝負なら真っ当な答えだ。しかし、なんと、それよりも高速な解が見つかったのでご報告しておきたい。しかも、多くの言語でソースコードの変更が必要なく、なんと、実行前に出力されるのだ。(オチがそろそろバレ始める頃合いだな)③
1から100の整数
「コンパイル結果」はこうだ。実行しようとしても出力結果は同じだ。
/path/to/script/compile-error.coffee:1:2: error: unexpected identifier
1から100の整数
^^^^^^^^
まあ、これはタチの悪い答えだが、出力はしている。「異なる方法」の中での異なり方は、ちょっと他の追随を許さないんじゃないかな。他に、④ファイル名を例のカンマ区切りにして、ソースコードを「"」だけにする、という似て非なる方法もある。コンパイラエラーの種類も違う。そして、⑤1行80文字以上の適当な数字とカンマを入力してそれを100行繰り返し、CoffeeLintにかけると行番号として1から100の数字が出力される。これも似て非なる方法だ。こっちはコンパイル通るしね。これで5種類コンプリート。
元記事のメッセージに対しては、上の本文で充分に正面からディスったと思うので、余談はとんちでごめんよ。
では。