ToDo:
過去に、まあこれはできるんでないの、って深く考えず書いてたら結構大変だったものがああって。
http://shinh.hatenablog.com/entry/20081109/1226217059
「数字もまぁなんか消せると思う」→1年半以上経過して http://d.hatena.ne.jp/ku-ma-me/20100709/p1
http://shinh.skr.jp/slide/mederu/041.html
「evalはできそうなもんだけどたぶん誰もやってない」→数年の時を減て http://shinh.hatenablog.com/entry/2015/05/09/032904
ええとつまり、言いたいことはこう僕は結構無責任に、うーんそれはできるんでないの、かな、と言いつつやってないことがあるということであり、これはまさしくフェルマー先生気取りと言えるとかなんとか。
というわけで思いつきで誰か研究すれば良いのでないの、ていう事項について書いておきます。ざっくり言って上の方が簡単な気がしている。
http://golf.shinh.org/reveal.rb?Quine/ais523%28genuine%29_1424105627&bef
が既に見事な答えなのだけど、 " を使うと自分を参照してるぽくてアレなので、 p, q, " を使わずに Befunge 93 の範囲で Quine を書くと良いかなぁとか思う。まぁこれは難しくないはず。
http://shinh.hatenablog.com/entry/2015/05/11/012223
の条件で Quine を。クソでかくて良いのなら自明なんだけど。 mame 先生が next(reversed(range(x))) で x-1 が表現できるよ、と教えてくれたのは天啓だったが、しかしこれだけに頼るとパース時の再帰が深くて死ぬ。
printf でフォーマット文字列とバッファの両方を制御下に置いてる場合、普通はまあ任意コード実行にしてしまうけど、 printf 一発で turing 完全なんじゃないかなあとか。特に ASLR 死んでて libc の実装が固定できてる場合など。
昔っからまあできるんだろうなあと思ってるネタ。
zip で展開したら同じものが出てくる、というのはすでにやられているので、 zip で展開して rar で展開するとまた元のが…みたいな感じで、2種類のアーカイバが混じると楽しいと思う。
僕は Quine Relay (https://github.com/mame/quine-relay) にあまり「頑張ったなあ」くらい以上のことを思ってなくて、基本的に printf を繰り返してるだけだからね。
本気で Quine ファンにやばいと思わせるには、それぞれの言語の Quine が混じる必要があるかなあと思っていて、たとえば
AxB は言語Aと言語Bで実行可能で、 AxB を A で実行すると AxC に、 AxB を B で実行すると CxB に…みたいな感じで、常に2言語 polyglot であり、使用する言語によって方向を決められる…とかするとかなり大変な気がする。 4 languages polyglot quine とかは自明にこの条件を満たすので、 10 言語くらいないとこの条件にインパクトは無い。
md5sum X > Y で X と Y が一致しているとかっこいい
(03:46)
ヒルベルトプログラム気取り的なアレやもしれぬ。
まだあった。
http://golf.shinh.org/p.rb?Hello+transposable+world
以前から、縦読み可能なプログラムとは…とか考えてたのだった。あまりコメントとか使わず、縦読みすると大幅に意味が変わるなどすると素晴らしい。
sedlisp/beflisp を作った時に、究極の目標とされていたもの。何がつらいって、仮にできたとして、現世的な時間でこれが BFLisp としてちゃんと機能している、とデモできるレベルの速度で動く気がしないこと…
(04:17)
前 | 2015年 5月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。