Home > Archives > 2010年12月

2010年12月

即席ラーメンタイマー in bash

あらかじめ .bashrc に次を追加しておく.

function timer { sleep $1; while true; do echo -e -n '\a'; sleep 1; done }

1. カップラーメンに湯を注ぐ.

1.5 必要ならターミナルを起動.

2. 好みの時間(秒数)にタイマーセット.

timer 165

3. 時間が来たらビープでお知らせがくるのでのびる前に食べれ.

C言語のクイズ

適当なXを持ってきて以下の二つの文が等価でないことを示せ:

X += e;
X = X + e;

まあ,副作用のある関数 f の呼び出しを X に上手く入れられれば等価でないことを言えるのだけど,単純に X を f() にしただけでは左辺値じゃないと怒られる.何かでくるんで左辺値にすればオッケー.

f()を含んだ左辺値になる式は色々あるけれど,例えば配列へのアクセス a[f()] なんてのはその候補.さて,では,そのような式の中で最小のものは何なんだろうか? ゴルフする人間としては気になる.

で,さっき思いついたけど,ポインタを返す副作用のある関数 f を持ってきて X に *f() を入れれば以下の二つの文は等価じゃない.

 *f() += e;
 *f() = *f() + e;

これが最小の解なのだろうか?

Home > Archives > 2010年12月

Search
Feeds

Page Top