Eyes, JAPAN Blog > コーヒーカップとメビウスの輪

コーヒーカップとメビウスの輪

beko

この記事は1年以上前に書かれたもので、内容が古い可能性がありますのでご注意ください。

コーヒーブレイクに、タバコで一服、音楽を聴く、ネットサーフィン、寝る、などなど、仕事の合間の休息のとり方は人それぞれかと思います。 あまりメジャーではないかもしれませんが、私のよくやっていることは、食器を洗うことです。
 かつてはコーヒーを入れるカップを洗うための作業だったのですが、慣れてくると自動化されて、手は動かしながらも、頭ではぜんぜん違うことを考えているようになりました。 心なしか食器を洗っている時にはいいアイディアなどが思い浮かびやすいように感じています。 

今朝も、コーヒーを飲むためにカップを洗っていると、ベルトコンベアのように演算結果を運んでいくプログラムが思い浮かび、プログラムは 1 次元的なものなのでは、と考えました。 条件分岐などは 2 次元的に捉えることもできるのですが、コンパイルした後のバイナリは結局一本の命令の列になってしまいます。 ここで、ふとメビウスの輪が思い浮かび、この 1 次元のプログラムをひねってくっつけると、何ができるのだろうと考えてみたのですが、思い浮かばず、再帰かな?という結論に到達しました。 再帰に関して考えると、再帰を作る関数である Y Combinator がまず思い浮かびます。 Y Combinator は再帰関数を再帰を使わずに定義することができる、すごい関数で、これはメビウスの輪をほどくようなことをやっているのではないか、などと寝ぼけた頭で考えていたりしました。

たまには息抜きに食器を洗ってみるのもいいかもしれません。 あまりに考えすぎると、「洗うの遅いよね」って言われることがあるかもしれませんが。

担当:齋藤 (妄想家)

Comments are closed.