15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

forやめろ? やめねーよ!

Last updated at Posted at 2015-06-02

#ぷんぷんっ!

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' だと思っていた。ここまではふざけてないよ。最適化勝負なら真っ当な答えだ。しかし、なんと、それよりも高速な解が見つかったのでご報告しておきたい。しかも、多くの言語でソースコードの変更が必要なく、なんと、実行前に出力されるのだ。(オチがそろそろバレ始める頃合いだな)③

compile-error.coffee
1から100の整数

「コンパイル結果」はこうだ。実行しようとしても出力結果は同じだ。

コンパイル結果
/path/to/script/compile-error.coffee:1:2: error: unexpected identifier
1から100の整数
 ^^^^^^^^

まあ、これはタチの悪い答えだが、出力はしている。「異なる方法」の中での異なり方は、ちょっと他の追随を許さないんじゃないかな。他に、④ファイル名を例のカンマ区切りにして、ソースコードを「"」だけにする、という似て非なる方法もある。コンパイラエラーの種類も違う。そして、⑤1行80文字以上の適当な数字とカンマを入力してそれを100行繰り返し、CoffeeLintにかけると行番号として1から100の数字が出力される。これも似て非なる方法だ。こっちはコンパイル通るしね。これで5種類コンプリート。

元記事のメッセージに対しては、上の本文で充分に正面からディスったと思うので、余談はとんちでごめんよ。

では。

15
13
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?