アスキーアート化放射線耐性 Quine

半年以上ぶりの更新?

ref: https://github.com/mame/radiation-hardened-quine/blob/master/rquine.rb

2 月に公開した放射線耐性 Quineアスキーアート版にバージョンアップしました。

旧版はナイーブな冗長化として、同じコードを 2 回繰り返す手法をとっていたのですが、著名なコードゴルファーである Darren Smith さん (flagitious) がハッシュ値に合うようにコードを自己修復するバージョンを作ってくれました*1。そのアプローチに基づいて、アスキーアート版を作りました。

旧版の (自明な) 冗長性がダサいという批判は結構あったので、解決してよかったなあ。flagitious に感謝。あと flagitious に伝えてくれた shinh さんにも感謝。

*1:flagitious のバージョンは String#hash が実行のたびに同じ値を返すことを仮定しているので、1.8 でしか動きません。自分の版では .unpack("H*")[0].hex に置き換えることで 1.9 以降で動くようにしています。