|_|=

記号ゴルフって英語でなんやろって聞いたら題字の返事が mark byers 氏から帰ってきました。

さて、最近の記号ゴルフについては、

http://d.hatena.ne.jp/kikx/20061030#1162308720

にまとまっていますが、とりあえず無限ループは [*""..$/] と (""..$/).min で更新できますねーと。

あとは quine も StackError も SEGV もわからないなぁといったところです。特に quine を「安直に」作る kik さんは異常だと思いました。つまり答えキボンヌと申しておるのですが。

追記なんかこれ偉そうですね。こう答えがわからないギギギというアレが。 StackError は正規表現とかなんかなぁ…あ、あと思い出したんですが 6B StackError は察しておられる通り load$0 のつもりでした。 Perl Golf では do$0 がたまにあるワザのようなので(再帰関数をこれで作る)、まぁアリなのかなと思ってました。

追記: 教えていただきました!

http://d.hatena.ne.jp/kikx/20061107#1162843513

ありがとうございますー。ていうかすげー。 StackError の方はちょっと考えてやっとわかりました。 quine の方はそもそも quine については何度か考えてみたことあるんですがわかった試しが無いので、この機会にもうちょい考えて私も安直に quine が日常業務で書けるように修行を積みたいと思います…と思って眺めてたら、動き自体はわかりました。これ自分で書ける気がしないなぁ… Array#* が %p の代用みたいな感覚なんですね気持ち的には。なるほどなぁ…

あ、忘れてましたが、たぶん「p」と当てられた通り、猿マネしただけの quine 1H25B は以下のようなものでした。

_="_=%p;$><<_%%_";$><<_%_

とか書いてなんとか縮まんかと考えてるうちに改行アリの場合のが。これは Wikipedia で似たの見ました(何故イタ語)が、ほえーというかなんというか。

わかってきた…細かいミスだと思いますが、

i@u ~/wrk/golf> ruby =(ruby =(ruby =(ruby quine.rb)))
$><<[_=<<_,_,'_']
$><<[_=<<_,_,'_']
_

でもいいですよね。 0H37B かと。しかし本質的にはカケラのムダも見つからないなぁ…

追記。とてもアホなミスで見落としてたIRCのログがあったのですが、そこで flagitious さんがもう 2B 短い回答を提示してました。それは少し内容は違うんですが、その方法を使うと kik さんの quine もまだ 2B 減ります…

なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h