昔のFORTRANといえば変数名に空白を入れられる(最終的に無視される)仕様でしょ。 DO I=1,10 をtypoして DO I=1.10 としたために10回ループが変数DOIへの1.10を代入に化けるという伝説のバグ。
2018-03-26 21:43:22間違えた。 DO 5 I=1,10 と DO 5 I=1.10 だ。 んで、暗黙の変数定義の仕様や、DOとCONTINUEが厳密に組みになっている必要のない仕様からこれのコンパイルが通ってしまうという恐ろしさ。
2018-03-26 21:49:56そもそも知らない人が多いと思うが ・1行は80文字 ・7桁目から本文を書く 三種類のGOTO文 ・単純GOTO文 ・算術型GOTO文 ・割当て型GOTO文 とかそういう時代も存在した Fortran66ってやつなんだけど
2018-03-26 20:41:33* 抽象構文木という概念が実質ない * 前方の “評価結果” が後方の “字句解析” に影響する の2点だけで単独首位が確定している気しかしない
2018-03-26 21:19:20戻り値を使っていれば判定、使っていなければ空にするという仕様とか面白そう。 twitter.com/hsjoihs/status…
2018-03-26 20:44:40空かどうかを判定するempty()関数と、空にするempty()関数も用意しよう twitter.com/yoh2_sdj/statu…
2018-03-26 20:39:38APL の配列の 1 オリジンと 0 オリジンを動的に切り替えられる機能とか(⎕io に 0 を代入すると 0 オリジンになる)
2018-03-26 21:08:57@qnighy @tanakh ==と===を分けて、break必須のswitch case文も入れて、int * a,b;でbはint型にして、ヘッダと実装分けてインクルードガードを必須にして、pragma onceは実装しないでください。
2018-03-26 21:03:27Pythonで > a = [[0]*3]*3 > a[0][0] = 1 が > [[1,0,0],[0,0,0],[0,0,0]] でも > [[1,1,1],[1,1,1],[1,1,1]] でもなく、 > [[1,0,0],[1,0,0],[1,0,0]] になるのは最高にクッソって感じはする。
2018-03-26 21:22:45今のコンピュータの性能を基準に考えたら構文解析と意味解釈が独立してても問題ないのはあるけど、当時の状況はどうだったのかってのはあるよね
2018-03-26 22:04:09そういえばSchemeは等価比較がeq?とeqv?とequal?と=とstring=?と……とあってわかりにくいと言われたのを思い出した(#f が返る可能性があるのをstring=?で比較して怒られたりしつつ
2018-03-26 22:12:05(昔の)Javaでは、double-checked locking という小ワザがうまくいかないことがありうる、という仕様だった cs.umd.edu/~pugh/java/mem… というのも嫌な実装というか仕様の例だなそういえば
2018-03-26 22:11:04