日下部(void)さんと遊ぼう(12)

そして真相。


2006年12月05日 07:26 Aさん(トピ主)


これ日下部先生の勘違いじゃないかな…
何度脳内コンパイルしても無理だ…


2006年12月05日 22:34 Aさん(トピ主)


scope とか continue の動作以外で何かあったのかな…

ていうか日下部先生はあんな数分であそこまでの議論の解決を
思いついたんだろうか…
すげえなあ

2006年12月10日 11:52 Kusakabe


> 日下部先生はあんな数分であそこまでの
> 議論の解決を思いついたんだろうか

『あそこまで』ってほどのもんか?
Cやるなら常識だろ。

(それとも『あそこ』で指すものは別のもの?)

code golfやgoogle code jamで上位にランキングするような日本を代表するトッププログラマが何人もで考えてもわからないようなことが「Cやるなら常識」らしい。日下部先生にも困ったものだ。


まあ、 この時点で、whileがforより短くなるのはマクロを使うケースだと断定して良いだろう。もうひとつの問題である、


while(exp1) { st1 st2 exp2; }

for(;exp1;) { st1 st2 exp2; }

で、st1に何かがくれば等価ではなくなるというのは、この一つ前の私の書き込みを日下部さんが誤読して返答しているのだと思われる。ここ最近のmixiでの日下部先生の書き込みを追いかけてみたところ、誤読が案外多い。それは百も承知で、この部分から攻めてみたかったのだが、

つまり、「st1に〜」のくだりは“アレ”のことを言っている可能性もあるのだが、そうだとしたらあまりにもショーモナイので、そういう言い逃れが出来ないようにここで縛りを入れておきたい。

この縛りを入れるのに私は失敗した。ここで言う“アレ”とは、

# あほ 『> つまり、「st1に〜」のくだりは“アレ”のことを言っている可能性もあるのだが

st1=st2=exp2=emptyでfor(;exp1;) ; とwhile(exp1) ; とが等価ではないと言われるパターンだな。そんなショーモナイことを言われると確かに嫌だな。』

# yaneurao 『> st1=st2=exp2=emptyでfor(;exp1;) ; とwhile(exp1) ; とが等価ではないと言われるパターンだな。

Yes。よくわかったね。それ言われると嫌っしょ?』

のことである。for(;exp1); と while(exp1); とではどこが等価ではないのか?とコメント欄(id:yaneurao:20061217#c)で言っている人が居たが、「do ;」の直後にこれらが来た場合、前者はコンパイルエラーであり、後者はコンパイルエラーにはならない。(do〜while構文だから)


私はこれを言われるのが嫌だったので、うまく誘導しようと思っていたのだが、その誘導にも失敗してしまった。だからこの件はこれ以上追いかけるのは無理だと判断して手を引くことにした。


2006年12月10日 18:05 Aさん(トピ主)

 
実際まだ解決していない & 誰も分からないじゃーん?

2006年12月10日 21:34 Aさん(トピ主)


あ、ネタとして「あそこまで」発展した議論って意味です

2006年12月11日 22:29 Aさん(トピ主)


やっぱりレニエの菓子をあげないと回答くれないのかな?orz

日下部さんからのレスが入ること無しにこのスレはここで終了した。
今回の一連の記事は、日下部さんがどういう人なのかその攻略と対策の一助としてもらえれば幸いである。


切込隊長mixiの荒れるトピックスにおける考察にも日下部さんの話題が出てくるが、まあ、日下部さんとはそういう人なのである。


ところで、今回の話には後日談がある。それをいくつか紹介したい。(つづく)