ときどきの雑記帖 RE* (新南口)
Shadow of the Hegemon
The Laughing man
あと一週間すね😄
"#笑い男事件"2024年2月発生――#攻殻機動隊 STAND ALONE COMPLEX
— 攻殻機動隊【公式】GHOST IN THE SHELL official (@thegitsofficial) January 26, 2024
The Laughing Man
⚡YouTubeにて本編期間限定配信、決定!!
【2月1日(木)00:00~2月3日(土)23:59】
😊EMOTION Label Channelhttps://t.co/B97zhvkIKv
😊フル☆アニメTVhttps://t.co/hAdue7uoz4 pic.twitter.com/r4L8sYGEk3
2024年2月1日“#笑い男事件”発生😊
— VSTORAGE(ビー・ストレージ) (@VSTORAGE) January 26, 2024
『#攻殻機動隊 STAND ALONE COMPLEX The Laughing Man』
2月3日(土)渋谷にて#神山健治 監督登壇による
上映&トークショー開催決定✨
チケットは本日18時より発売🎟️
YouTubeにて本編期間限定配信も決定📺
https://t.co/ua4OBvfdXU pic.twitter.com/BgXO69ho8l
名前
箱根登山鉄道、「小田急箱根」に社名変更 4月1日組織再編へ | レイルラボ ニュース
なんか面白みのない名前だなあ
自由が丘
豚まん専門店"東京豚饅"が「551蓬莱そっくり!」 と話題 - 「帰省のたびに551買う必要ないやん!と思うほど551」「とてつもなく美味しすぎた」 | マイナビニュース
自由が丘に2号店があるらしいので 今度行ってみるかな(行列ができてるらしいが)
/.
- ITマニア向けの掲示板「スラド」が1月末での終了を発表。23年の歴史に幕 - Publickey
- スラド終了 「スラッシュドットジャパン」から23年の歴史に幕 - ITmedia NEWS
- 老舗掲示板サイト「スラド」が2024年1月末に終了、「OSDN」も接続困難なまま閉鎖か - 窓の杜
- スラド終了のお知らせ | スラド
新刊近刊
awk
FORTRAN Compiler on IBM 704
K&R style
ふとしたことで見つけたこの記事。
しかし!1つだけ納得できないことがあります。 何故関数のカーリーブラケットだけは例外的に改行するのですか!?
int main(void) { // ←なんでお前改行してんの? if (nowYear > 2013) { printf("Happy New Year!!\n"); } return 0; }
これだけは私許せません!どんなに慣習的なスタイルを採用したい私でも、以下のように書きます。
int main(void) { // 改行なんてありえねーだろ。 if (nowYear > 2013) { printf("Happy New Year!!\n"); } return 0; }
いや、マジで誰か改行しちゃう論理的な理由をください。同じブロックではありませんか! 何故関数だけ特別扱いしてしまうのですか!こんなうざったい程論理的な人間の多い業界で、 こんな慣習的なスタイルに論理的な理由がないなんて、ありえないと思うのです。 しかし、調べど調べど理由は見つかりません。
正規表現で「行頭の’{’」を検索すると 関数の先頭にすぐ行けるから。 という話を聞いたことがあるけど あれはどうだったんだろうか。
何故?何故なの?小一時間カーニハンとリッチーを問い詰めたい。気持ちの良い納得のできる理由さえ見つかれば、 これでめでたく私もマジョリティの仲間入りができるわけですよ!たった1つ! これだけの理由で私はマイノリティになってしまっているわけですよ!
(略)
とか言っていたのが恥ずかしくなるぐらい、さらっと「○○だからに決まってんだろjk」みたいな感じで、 すげーしっくりくる納得コメントが付いたらどうしよう。いや、むしろ付いてほしい。恥ずかしくなりたい。
んで、実際のところは
[B!] K&Rスタイルで納得できないこと - 涼の成長記録
にあるコメントの通り、K&R形式の関数定義からだろうねえ
K&Rスタイル (あるいは、カーネルスタイル)とは、ブライアン・カーニハンとデニス・リッチーの著書でK&Rこと 『プログラミング言語C』で使われた字下げスタイルであり、C言語で一般に使われている。 C11 の仕様書 ISO/IEC 9899:2011 のサンプル、UNIXカーネル、Linuxカーネルはこのスタイルでソースコードが書かれている。 Objective-C、C++ などでは、それほど一般的ではない。このスタイルでは、ブロック開始の中括弧を制御文と同じ行に置き、 ブロック内の文を字下げして記し、ブロックを閉じる中括弧を制御文と同じ字下げ位置に戻して記す(その行は中括弧が先頭になる)。 関数はそれとは異なり、関数の定義の最初の中括弧は宣言の次の行の先頭に記され、 宣言と同じ字下げレベルとなる(これは次の例で示すように、 ANSI標準より前の構文のせいでもある(K&Rの初版の中のコードはこのような構文で書かれていた)。 行頭の中括弧で関数本体の先頭を検出しているツール等があったため、 標準化後や他のスタイルのコードでもここだけは同じにしていることも多い)。
int main(argc, argv) int argc; char *argv[]; { ... while (x == y) { something(); somethingelse(); if (some_error) do_correct(); // K&Rでは単独の文しかないブロックには中括弧を付けていない。 else continue_as_usual(); } finalthing(); ... }
そういやC以前のBCPLなどはどうだったんだろうか ということが気になった(BCPLやBには関数の引数には型がついてこないし) ので(ry
ケン・トンプソンによるUsers’ Reference to Bより[2]
/* 以下の関数は負でない整数nをb進数の形で出力する(ただし2<=b<=10)。 このルーチンはASCIIキャラクタのコードの値が 0から9まで連続しているということを利用している。*/ printn(n, b) { extrn putchar; auto a; /* Wikipedia による注釈: この auto キーワードは自動変数(関数スコープの変数) を宣言している。C++11 の型推論の auto とは別もの。 */ if (a = n / b) /* 代入文であり、比較演算子ではない*/ printn(a, b); /* 再帰 */ putchar(n % b + '0'); } /* 次のプログラムはネイピア数の小数点以下の部分を4000桁まで計算し、 1行5文字のグループに分けて50文字を出力する。 この手法は以下を単純に拡張した物であり、 1/2! + 1/3! + ... = .111.... それぞれ2桁、3桁、4桁…に対応する。 */ main() { extrn putchar, n, v; auto i, c, col, a; i = col = 0; while(i<n) v[i++] = 1; while(col<2*n) { a = n+1 ; c = i = 0; while (i<n) { c =+ v[i] *10; v[i++] = c%a; c =/ a--; } putchar(c+'0'); if(!(++col%5)) putchar(col%50?' ': '*n'); } putchar('*n*n'); } v[2000]; n 2000;
GET "LIBHDR" GLOBAL $( COUNT: 200 ALL: 201 $) LET TRY(LD, ROW, RD) BE TEST ROW = ALL THEN COUNT := COUNT + 1 ELSE $( LET POSS = ALL & ~(LD | ROW | RD) UNTIL POSS = 0 DO $( LET P = POSS & -POSS POSS := POSS - P TRY(LD + P << 1, ROW + P, RD + P >> 1) $) $) LET START() = VALOF $( ALL := 1 FOR I = 1 TO 12 DO $( COUNT := 0 TRY(0, 0, 0) WRITEF("%I2-QUEENS PROBLEM HAS %I5 SOLUTIONS*N", I, COUNT) ALL := 2 * ALL + 1 $) RESULTIS 0 $)
Max(Items, ValueFunction) = value of § (Best, BestVal) = (NIL, -∞) while Items do § (Item, Val) = (Head(Items), ValueFunction(Head(Items))) if Val > BestVal then (Best, BestVal) := (Item, Val) Items := Rest(Items) §⃒ result is Best §⃒
procedure Absmax(a) Size:(n, m) Result:(y) Subscripts:(i, k); value n, m; array a; integer n, m, i, k; real y; comment The absolute greatest element of the matrix a, of size n by m, is copied to y, and the subscripts of this element to i and k; begin integer p, q; y := 0; i := k := 1; for p := 1 step 1 until n do for q := 1 step 1 until m do if abs(a[p, q]) > y then begin y := abs(a[p, q]); i := p; k := q end end Absmax
proc abs max = ([,]real a, ref real y, ref int i, k)real: comment The absolute greatest element of the matrix a, of size ⌈a by 2⌈a is transferred to y, and the subscripts of this element to i and k; comment begin real y := 0; i := ⌊a; k := 2⌊a; for p from ⌊a to ⌈a do for q from 2⌊a to 2⌈a do if abs a[p, q] > y then y := abs a[p, q]; i := p; k := q fi od od; y end # abs max #
そう言えばその昔、Pascalでif文にぶら下がる複文の始まりのbegin
を
if cond then begin
...
end;
のように書く人がいたなあ
江古田
NHK
— たか (@Michinokunotaka) January 24, 2024
「米原(まいばら)市の米原(まいはら)インターチェンジ」
さすがです
これと同じニュースかどうかはわからないけど、 「まいはら」と読んだのを聞いて 「まいばら」だろと思っていたら 実は「まいはら」が正しいケースがあると知って以下略
で、ふと連想したのが 「えこだ」と読んだり 「えごた」と読んだりする 「江古田」。
割と最近まで後者の読みがあるのを(そして実はそっちが正統(?)なのを)知らなかった のね。
江古田(えごた、えこだ、えこた)は東京都区部の地名。中野区の北東部から練馬区の江古田駅周辺に及ぶ。主に住宅街で、練馬区の江古田駅周辺は商店街・学生街として知られる[1]。行政上の町名としては中野区に江古田一丁目から江古田四丁目まである(#行政上の町名としての江古田参照)。
「えこた」もあったのか!
クォートを忘れただけなのに
恐怖の現場の様子をお届け pic.twitter.com/TTC2UPAnJE
— おしょうゆ (@osyoyu) January 24, 2024
YOKOHAMA
「ガンダム ファクトリー ヨコハマ」が3月末に完全クローズへ https://t.co/3Q72bZnuKz
— 小川みずえ (@mizue58anime) January 24, 2024
もう一回くらい行きたいとは思うもののなかなか厳しそう。 そもそも結構混むようになってきてるらしいし