やっぱり「ネウロ」をネタ漫画としてしか読んでいない人が多いのか? 俺はそういう作品に対して斜めに構えたスタンスってのは大嫌いだ。「鳥頭紀行ぜんぶ」のタイ編のエピソードで、ホモバーのオナニーショーに対してはせぴょんが「みんな一生懸命いじっているからこっちも真剣に見ないと悪いじゃないですか」というセリフを残しているけど (いや、真偽は不明だけど) 、これはまさにその通りだろう。真っ正面から作品に向き合って評価しないと。
いや、「ネウロ」がそういう意図で書かれている漫画なら話は別だけど、どうも松井先生は真っ正面からデスマッチを挑んでいるような気がしてならない。
またくだらない物を作った。bk1 書籍データ取得 CGI 。当初は無駄に XMLRPC でも使ってやろうかとか思ったけど、なんだか面倒になったので止めた。どうせこれはささやかなハックなのだから。
自分と同じ遺伝子を持ったバカってのは本当に嫌になるね。むしろ死にたくなる。俺の一族は遺伝子に致命的な傷が付いているとしか思えない。俺の一族は俺の代で根絶やしになるべきだ。
Python では new.instancemethod でインスタンス固有のメソッド (特異メソッド……だよね?) を定義できるが、ぶっちゃけた話あまり美しくない。もっと簡潔でわかりやすい書き方は出来ない物かと考えた結果、次のようなコードを思い付いた。
def instancemethod(f):
def _curry_(*args):
def _curry__(arg, x):
full_arg = []
full_arg.extend(arg)
full_arg.extend(x)
if f.func_code.co_argcount == len(full_arg):
return f(*full_arg)
else:
return curry(f)(*full_arg)
argc = f.func_code.co_argcount
if argc == 1 and len(args) == argc:
return lambda : f(*args)
elif f.func_code.co_argcount == len(args):
return f(*args)
else:
return lambda *y: _curry__(args, y)
return _curry_
前に書いたカリー化のコードをちょっといじくってみた。これを使うと次のようなコードが書ける。
class Foo:
pass
@instancemethod
def hoge(obj, x, y, z):
obj.x = x
obj.y = y
obj.z = z
f = Foo()
f.n = hoge(f)
f.n(1, 2, 3)
print f.x, f.y, f.z
これは次のように書いたコードとほぼ等価で、結局は見てくれだけの問題なのだけど。
def bar(obj):
obj.o = 'bar'
f = Foo()
f.n = bar
f.n(f)
new.instcancemethod とは根本的に違っていて、こっちはただの誤魔化しなのだけどね。それでもこうして decorator を使った書き方と言うのは、その関数が特異メソッドとして使われる事を明示しているので悪いアイディアでは無いと思う。
ふと思ったのだけど、「ジョジョ」って敵キャラはともかくとして主人公サイドには理解不能な動機で動いているとか物凄いキチガイっていないよな (あくまでも「ジョジョ」という作品内での相対評価)。言動や行動がぶっ飛んでるとか、そういうのは確かに凄いけど精神性は案外正常。というかそうじゃなかったら人間讃歌なんてテーマにはならないか。
そういや、第三部で一番好きなキャラだったのは花京院だった。 Dio との最終決戦の前のモノローグで、大分自分の中での株が上がったというか、頂点に上り詰めたというか。やっぱ俺がフィクションに求めている重要な要素はヒロイズムと疎外感なのかな。