読者です 読者をやめる 読者になる 読者になる

Line 1: Error: Invalid Blog('by Esehara' )

または私は如何にして心配するのを止めてバグを愛するようになったか

>> Zanmemo

あと何かあれは 「esehara あっと じーめーる」 か @esehara まで

Rubyで実行可能な遺書

近況

f:id:nisemono_san:20150206183224j:plain

はじめに

 恥の多い生涯を送って来ました。

 自分には、人間の生活というものが、検討つかないのです。 このような身分の人間が、稀代の文豪と比較されるのも痴がましいのですが、自分は時折、まるで「太宰治のやうだ」と比喩ーーもしかすると揶揄なのかもしれませぬがーーされることが多くありました。

 今日は舶来の行事であるところのエイプリルフウルが行われ、企業が浮かれ気分で犬にも与えられぬようなサイトを立ち上げるのが流行るので御座います。自分は、性根が心の底から腐っており、「ふん、莫迦々々しい」などと不貞寝し、一晩明けました。

 「おれはどうしたのだろう?」と自分は思いました。というのも、自分の部屋、少し小さすぎるが見慣れた部屋が、どうもイツモの感じではありません。テーブルの上には、マックブックの他に、睡眠薬であるカルモチンがコロコロと転がっているではありませんか。自分はレヰルズで生計を立てるルビヰストだった気がしました。

 ナニヤラ可笑シイ、そう思いながらマックブックを開くと、その黒い画面に映し出された顔は太宰治の顔ジャアないですか。自分はとうとう気が違ってしまったのかと鏡の前に向かうと、確かに太宰治だったのです。

 どうも、自分は太宰治、太宰治と呼ばれ続けたせいで、本当に太宰治となってしまった。何かの恐ろしい陰謀にでも巻き込まれたのかと思い、ゾッとしましたが、折角なので、太宰治といえばなんだろうと思った結果、自分は遺書を書くことにしたのでした。

遺書

def 「; end;def 」;puts;end;def  (size);print size.chr;end;def method_missing(name, *args);name.size;end

  先立つ不幸をお許しください。この選択が最善の選択肢とトテモ思いませんが、私には、この選択肢が魅力であり、抗うことが出来ずこの結果となりました。

  幸せな事も沢山ありました。とくに人に恵まれたのは幸運かと、思います。このような無精で不誠実で、ダラシなく、威張り腐り、傲慢で根の腐ったような、嫌悪を催す様な人間に対し、親愛の情を持って接して頂いた皆様のことを、感謝します。

  社会に恨み言は申しませぬ。私よりも耐えしのび、苦しみに耐えている人々のことを思うならば、自分の苦労など足元にも及ばない。それ比べれば、自分が弱く甘ったれた人間であった為に、このような帰結になったとしか言いようがありません。

  とはいえ、不幸だけがあったわけではございません。天は自らに対して幾つかの類稀なる機会を与えて頂きました。しかし、このような滅びの道を辿ったのは他ならぬ自分の無能さのせいでしかない。このことは事実です。

  生活面においても不具者であった私に、生活の場を与え、 また能力が無いのにも関わらず、心意気を勝い、仕事の場を与え、救いの手を差し伸べて頂いた皆様には、尽くしきれぬ恩があることは重々自覚しています。

  言葉を重ねれば重ねるほど嘘臭くなることは嫌という程理解していますが、不器用な自分としましては、このような方法でしか皆様に対して感謝をお伝えすることが出来ないのです。本来なら対面でお伝えするのが礼儀であるのも理解しています。仕方なかったのです。

  このようなご無礼をお許しください。遺書の為に、様々なことを思い出す度に、本当に皆様にご迷惑をかけながらも、恩を返すことが出来ぬ人生であったこと、それだけが悔いでしかありません。本当に申し訳御座いません。

  ところで、私事でありますが、私は社会適応出来ない人間を、事あるごとに自覚させられました。

  自分は社会に関わらないほうが良い−−その気持ちが根に巣食ってる。

  自然科学では、ダーウィンが提唱したと言われる自然淘汰の原理があります。人間文明はそれに抗うように成長しましてきました。それでも淘汰が発生してしまう。それが偶々私だったのです。

  自分なりに努力したつもりでは御座いました。しかし持ち前の社会性の無さにおいて、他人にとってご迷惑をおかけすることが多いことも事実でした。私は不具者であり、元来から憎まれる怠け者で御座いました。淘汰されるのは仕方ないのです。

  生き死に理由を付けるのは、どうしてもわざとらしくなります。この場合もそうです。この遺書を書きながら、自分はやはり嘘をついているという罪悪感から逃れることができません。死への理由付けをすると、どうしてもそのようなものになるのです。

  事実として、社会と適応するにおいて、疲労困憊し、戦う気力すら失われている中で、これ以上、生きるということに関してコストを支払う余力は失われつつあります。生きる負債を払い続けるならば、いっその事、これを全部無にしたい。

  もちろん、このことが自業自得であり同情に値せぬと非難する人々が存在することも私は十二分に自覚していますし、その権利は存在します。それで良い。誇れぬ人生を送った人間です。私の死を悲しむ必要なぞ一切ない。

  それでは皆さんありがとうございました。自分の分まで、幸福であらんことを皆さんに願っています。

解説

 さて、この太宰治なのか夢野久作なのかワカラヌ文体を使うのも疲れているのですが、この遺書を解説します。

 Rubyの殆どは、関数というよりもメソッドと考えたほうがいいということは、ルビヰストなら知るところでしょう。例えば、下のようなコード:  

puts "foobar"

 は、実際のところKernel#putsというメソッドを呼び出しているだけに過ぎませぬ。同様に、トップレベルで宣言されるdefは、このKernelに結びついたメソッドとして宣言されるのです。

 そこで、Rubyの黒魔術として名高いmethod_missingがあります。このmethod_missingも、methodという名前が付いてます。Kernelで呼び出されるなんらかのものは、メソッドとして呼び出されます。実際に

def method_missing(name, *args)
  puts name
end
ほげほげ

 といったようなコードを書くことが可能なのです。

 ーー自分が言いたいことはこういうことです。

 つまり、あらゆる文章をmethod_missingで捕まえれば、文章を実行可能にすることが可能なのです。

 また、日本語の場合ですと、一文字下げて段落を始める、なんていう作法が御座います。Rubyでは、Unicode(ソースコードがUTF-8の場合ですが)文字にメソッドを結びつけることができるのです。

def やっていく
  puts "気持ち"
end

 ですから、実際のアウトプットは「 」という全角空白のメソッドを定義して、そこからアウトプットするという、非常に邪悪でおぞましい、奇怪な化け物を作り出したのです。

 しかし、ただ実行可能にするだけでは面白くは御座いません。そこで、ちょっとほんの遊び心を入れてみました。

 もし実行結果を見たければこちらをごらんになってください。実行可能遺書にふさわしい出力となっていることと御座います。

 …………ブウウ――――――ンンン――――――ンンンン………………。

参考文献