Island Life

2007/09/26

マシン語ブーム便乗

ついかっとなってやった。マシン語ならなんでもよかった。今は反省している。

どう書く?.org ソートするコードの生成

当然のことながら、プログラムというのは、マシン語を出力して初めて「生成できる」と言うのです。

(追記) このお題についてはもうひとつネタを思いついていたのだが アセンブラと戯れていたら時間がなくなってしまった。 アイディアをここに記しておくので興味のある人はチャレンジしてみては。 基本的なアイディアは、コード生成をlazyにやるということ (お題を満たすかどうかは微妙だが)

  • gensortは入力数Nを受け取ると、ソートプログラム sorter0 を生成する。
  • sorter0 は最初の入力を受け取ると、「残りのN-1個の入力を受け取り、 それをソートしてN個の値を出力するプログラムsorter1」 を生成してただちに実行する。
  • sorter1も実は同様に、入力を一個受け取ると「残りのN-2個の入力を受け取り、 それをソートしてN個の値を出力するプログラムsorter2」を生成して ただちに実行する。
  • 以下、入力が全て消費されるまで再帰。

プログラムをカリー化してる、と考えられなくもない。Partial Evaluationの 限定的な応用とも言えるかな?

各ステージのプログラムは次のステージの生成規則を持っていればいいはずだし、 既に受け取った入力によって大幅に枝刈りが出来るから、 元のお題のようにn!で大きくなるってことは無いと思うけど、 どんな姿になるのかは興味がある。 あと、「「「プログラムを生成するプログラム」を生成するプログラム」…」 というふうに入れ子になってゆくとS式が圧倒的に有利になるんじゃないかと 思うんだが、実はそうでもないかもしれない。

Tags: Programming, Assembly

2007/09/20

暗算

私が子供の頃には、「アメリカ人は暗算が出来ない。ものを買うと、 こちらが払った値段になるまで、買ったものの値段に釣り銭を加えてゆく」 というようなことを聞いたものだった。 だが実際にアメリカで生活していて、そのやり方でお釣りをもらうことは滅多に無い。 それどころか、$8.77に対して$10.02出しても、眉毛ひとつ動かさずに 1ドル札1枚と25セント貨1枚を返してくる。

彼らが暗算能力を身につけたわけではない。 レジが釣り銭を計算してくれるようになったからだ。

などというくだらないことをこれを読んで思ったりした。

Tag: 生活

2007/09/18

人と違うこと

On off and beyond: 「迷ったら人と違うことをする」ということについて

「迷ったら人と違うことをする」というのは、本にも書いたし、メッセージとして日本のワカイ人に伝えたいなーと思っていることでもある。でもその伝えたい相手は

「ついつい人と違うことをしてしまうのだが、それではいけないのではないかと思い、自分を殺して世の中標準にあわせている人」

で、そういう人に

「人と違うことしても大丈夫。死んだりしない。安心して自分の好きな道を選んでください」

と言ってあげたいなぁというのが趣旨だったのでした。

わかるようなわからないような。例えばPaul Grahamが 「みんなが主流の言語で開発してるときにLispを使えば勝てる」と 言うのはよくわかる。彼のエッセイは上に引用したChikaさんの意図と似て、 非主流である技術を使うことにしりごみする必要はないよ、というメッセージだ。

けれど、例えば芝居がうまくなりたかったら、「クラスやワークショップに通うかたわら、 オーディション受けたり劇団に所属したりして経験を増やしてゆく」っていうのが 普通のことで、他の道も無いわけじゃないだろうけど、ここで「人と違うこと」をする メリットってあまり無い。(もちろんオーディションや舞台ではみんな「人と違うこと」を しようと思ってるわけだけど、常に人と違うことをしようと考えている人々の集団でさえ、 集団として一歩引いてみれば同じようなことをやっている人たちである、というのが おもしろいところだ。日本の芝居仲間とハワイの芝居仲間の行動を比較すると、 たぶん適当にサンプリングした日本人同士の行動を比較するよりも多くの共通点が 見つけられるのではないか)。

だから無限定に「人と違うこと」という言明にはあまり意味が無いと思う。 Chikaさんのエントリの結論に同意するかどうかはともかく、前提の 「迷ったら人と違うことをする」という話にひっかかりを覚えないとしたら、 それは対象としている集団について暗黙の仮定を置いているってことで、 その仮定が何なのかを考えてみるのはいいことなんじゃないだろうか。

「『他人が《普通》と考えているだろう』と自分が考えていること」を 認識するってこと。この入れ子関係が面白い。 実はこれがコメディの原点だ。

「普通の人」を演じるのは「変な人」を演じるよりずっと難しい。 なぜなら「普通の人」なんて人はいないからだ。よく見れば見るほど、 人は一人一人違う。普遍性は個人にではなく、 「その人が『他人はこれを《普通》と考えているだろう』と考えて、 それに影響を受けるさま」にある。 (本当は「変な人」も難しい。リアリティがある「変な人」とは、 上の入れ子構造の『他人は〜だろう』の中だけが極端に違っていて、 その外側のフレームは普遍的なものであるような人だ。)

Tag: Career

2007/09/15

jottit

Aaron Swartzの新しいプロジェクト Jottit。 機能はごく単純なwiki (というかwikifarm) なんだけど、インタフェースが秀逸。 less is moreの精神。

2007/09/15

Why g 〜 π^2: 重力加速度gは9.81m/s^2。π^2は9.87。このふたつの値が近いのは偶然ではない、 という話。

メートルは当初、地球の大きさを基準にしてた、と教わったものだったが、実は それ以前に、2秒を周期とする振り子の長さ、という案があったそうだ。 この定義を用いることは、gがπ^2と等しくなるように単位系を決める、ということと同じってわけ。

More entries ...