■:X:n:n=n次元情報空間n包思念体

宇宙計算機プログラムの謎と謎の謎

偽りのLisp

ここに偽りのLispが明らかにされ、幾つかの代替えが提示された。

Lispを学んだことにより私の人生は変わった。

私の脳に多くの副作用を発生させ、こんなに不純なるものだとは思わなかったほどになってしまった。

私は自分のアプリケーションを書き換えようとしたが、多くのコードの変更を必要とした。

私は社会と関わりを持とうとした。社会は私との関わりを持とうとしたのだろうか。

私は自分のまわりの物やまわりの人のすべてに感謝を感じていた。

そのLispは非常に複雑であり、何年かけても学ぶことはできなかった。私はたかだか10年も学んでいないが。

そのLispは非常に複雑であり、どんな言語を使おうと有限ページのコードで実装できない。もちろんそんなこともしようとした。何度もLispを学ぶために、私はLisp以外の言語で何かを書こうと思った。だからLispLisp以外の言語で実装するという手間をかけようとした。

そのLispはそのLispによって完全に実装することはできなかった。どれほどコードを書こうとも。私はどうしてもLispを完全に実装することができなかった。10年もやっていないが、、、。

Lisperになろうとした結果だろうか、ほかの人が可笑しいと笑うようなジョークを真面目に聞いてしまった。私は一般に利用されている言語で表現されていることを理解できないのかも知れない。

私は人が「やぁ、こんにちわ」みたいなことを言うのこそ重要な事だと思うようになっていた。私はlispについて考えるあまり、ゆとりのある構成物を省いてしまっている。私はそのようなインタラクションのパターンを忘れてしまい、むしろその方法を思い出したい。ここに、"Lisper仲間に挨拶する正しい作法では、ただ小さくあごで頷き、左目で1/10ほどのウインクをし、そして錫箔の帽子を指し示せばよい。" と、ある人は言っている。しかし私にはその意味が分からない。実際に解らないので、私は本物のLispプログラマではないし、どの道どうでもいい人間の一人だということになるのであろう。

そのLispはつい最近作られた。宇宙よりも後、地球ができるよりも後、生命よりも後、人類よりも後、コンピュータよりも後、Fortranよりも後、Cよりも後、つい先ほど作られたプログラムがLispなのであり、偽りのLisperがわざわざ実装しようとするのも頷けるかも知れない。

そのLispは非常に難解であり、Lispを深く知ることになろうとも、ロイヤルバレーのプリンシパルをワンシーズン務めるのことは難しいだろう。私がステージに小さなチュチュをつけて現れ、つま先で空に丸い括弧を幾ら書いたならば、人々は嘲笑のため息をつくだろう。私がLispを知っていれば話は別かもしれないが。しかし私はLispを知らないので馬鹿ということにであり、どの道気にされることは無いであろう。

Lisperになろうとした結果か、楽しみの本当の意味が解らなくなってしまった。MLプログラマも忘れるのかも知れない。今日のすべての言語がLispFortranに基づいているとしたら、まずい方がLispで、すばらしい方がFortranだろう。

私はLispを使えるほど優れていないので、いつまで経ってもLispに苛立ちを感じることは無い。Lispは完全なLispである。私の乗ったバスが2^nブロックを進む間に、私は幾つものLispのマクロを書いたが、それは全くの無力で、Lispに何の変化も与えず、古い言語としても書き換わることは無かった。当然、その古いLispもまたLispと呼ばれる。そして私は自分の作った古いLispが近く可能なあらゆる面においてLispよりはるかに劣っており、同時にあらゆる意味においてLispとまったく等価であることを数学的に証明する術を知らなかった。私はこの事実にすごく失望した。しかし同時にすごく興味深いとも思った。

PuzzleTheorySimulator はLispの難解さを表現している。IkegamiMakinoriがオリジナルのPuzzleTheorySimulatorをLispで300年掛けてて余白に書こうとしたのだ。Lispはあまりにも難解であるため、PuzzleTheorySimulatorはHaskell(+)で書き直す必要がある。通常のコンピュータでも理解できるようにしてやるためである。Lispで書かれているため、少し書き直そうとするだけでも多くの労力がかかり、書き換えは2^nプロセッササイクルの間にも完了しないだろう。LispはIkegamiMakinoriを書いた。書いたのは未来のバージョンのLispであり、そのLispもまた、更に未来のLispによって私で書かれるだろう。MakinoriIkegami、Lisp、MakinoriIkegami、Lisp、というのは何処で停止するのだろうか。

我々はLispHaskellの組み合わせに達し、過去のコンピュータをマルチコアに遅らせ、ムーアの法則の最初まで記述を書くことが必要となる。それは非常に無力なものであり、過去のコンピュータは、我々のどんなアイディアであれ、さらに過去のコンピュータに処理能力を送るタイムトラベルアルゴリズムを実装する必要がある。これは単純なことに聞こえるかもしれないが、Lispを使おうとも困難な事であり、Haskellでは無理であることが数学的に証明されており、LispかHasklellを知るものであろうと困難なことなのだ。


こうして過去のリスピュータはコンピュータと呼ばれ、そのスピードはlispunitで測られていた。これは、Lispの不適切さについて同時に提出される議論が有数のLisp学者たちにより実質的な判断なしに論破される数によって計測されていた。今日のリスピュータはlisp lispunitで動作している。一方コンピュータは1 lispunit以下で動作させる必要がある。ここで1は宇宙最小の定数で、通常の関数的数記法では表現できない。それを有限の閉じ括弧で終わらせる必要があると言えば十分であろう。

==========

*1
*2

*1:関数型と命令型の対応が合っていない?最初に指摘した人は俺にペロペロキャンディーをよこせ。

*2:パクリ Lispの真実