2004-01-01から1年間の記事一覧

成長の禁止/変身の許容

可能性物では登場人物が成長しない/してはならない。なぜならば定義により、精神面の変化は全く意味をなさず、能力面の変化はその前後が全く別の人物として扱われるからである。そのため、能力の変化は連続的な成長としてではなく、不連続的な変身として描…

例えば、民話の登場人物は「その人は何をするか」によって規定されている。例えば、近代小説の登場人物は「その人は何をしたか」によって規定されている。*1 「その人には何が出来るか」によって登場人物を規定する物語を、ここでは便宜的に「可能性物」と呼…

特殊能力

格闘物の少年漫画や清涼院流水のJDCのようなものだけではなく、登場人物の限られた一部だけが可能な行為は全て特殊能力であるとみなしてよい。 例えば、一般的なミステリでは特殊能力を示すために職業を利用している。 警官 捜査を仕切ることができる。 医者…

なんとかOK編

OKとNGとの境界線について。 特別な能力 主要人物の能力は特別なものとして扱ってもよい。これは二重規範と極めて似ているが、持っている能力自体を明示することが出来る点が異なる。例えば、素早い身のこなしで弾丸をかわす主人公。*1例えば、初対面の人物…

NG編

まずは駄目だと思う演出について。 二重規範 いわゆる御都合主義*1演出の大半は二重規範に由来する。例えば、主要人物は掠り傷一つ負わないが、その他大勢の非主要人物は次々と倒れていく銃撃戦。例えば、主人公を初対面にも関わらず無条件に信用する登場人…

批評は誰がために(略)

メタな考えを廻らしているうちに判ったこと。 私が批評に求めているものは演出の方法論である。 ということで『演出の方法論』というカテゴリを新設してみよう。

批評は誰がためにありや

誰のために批評を行うのか? もちろん、自分のためである。自分の読解に有益な行為を優先して行うという程度の功利主義ならば私も持ち合わせている。*1 何のために批評を行うのか? もちろん、小説を読むためである。さらにいえば総体としての小説、一般形と…

何ともメタな

最近、何かを書こうとするたびメタな方向へ考えが向いてしまう。昨日http://d.hatena.ne.jp/kilrey/20040913の文章は途中まで書いて放置してしまったほどだ。メタな気分ならメタな気分らしく、今日は批評について書いてみようかと思う。

Eric Garcia『さらば、愛しき鉤爪』ISBN:4789717690

出来の良いパロディは何時読んでも楽しめる。まあ、それは定義のようなものであり、同義反復といってもよいのだが、最も頼りになる指標であるのも事実だ。

try節はthrow-catchを伴わなくてもよい。

int method(){ assert this.checkPreCondition(); try{ return 1; } finally { assert this.checkPostCondition(); } } try節の評価が終了した段階で必ずfinally節を評価する、という仕様になっている。つまり、try節内でreturnやbreakを利用した場合、try節…

寓話

小説や劇映画など媒体を問わず、世に広まっている物語の大半は寓話だ。もちろん、作られる物語の大半が寓話だというわけではない。物語の中でも特に寓話は世に広まりやすいというだけのことだ。 寓話とは、ある命題を字義通り語らず、代わりにその命題につい…

Lambda+Aspect

http://d.hatena.ne.jp/kilrey/20040309#p1のFunctorを使えばLambda式を作り出すことが出来る。さらにAspect手法を使えば各classにFunctorのMapを追加することが出来る。つまり、動的オブジェクトが得られる。*1 *1:利点は特にない。型付けが弱くoverloadが…

javassist続き

javassistで作ったクラスは通常のクラスと機能面で同等である。しかし、動的に生成しているのだから当然なのだが、静的な文脈で利用する、即ち型情報を利用することが出来ない。つまり、意図せずとも実装の隠蔽がなされるわけである。

javassistを使ってみた。

JBossで既存のクラスをアスペクト指向的に変換するために使われている動的クラス生成ライブラリらしい。*1せっかくなので、スクラッチからクラスを動的に生成してみた。 *1:J2EEは触ったことがない。

Generics & template(C++)

javaのGenericsとc++のtemplateは似ている。*1 しかし、両者の設計思想は大きく異なっている。なぜならばGenericsは型をパラメータに取るのに対して、templateはクラスをパラメータに取る。つまり、Genericsは複合的な型情報を扱うための技術であり、templat…

生命と宇宙と万物の究極の答え

http://slashdot.jpより。 answer to life the universe and everythingをgoogleで検索してみよう。ちゃんと答えを出してくれるぞ。 http://www.google.co.jp/search?q=answer+to+life+the+universe+and+everything&ie=UTF-8

うちの犬は正しかったのか。

愛犬(先々代)の死因は腹部の腫瘍による衰弱死でした。死の数日前、外から見えるほどまで大きくなっていた腫瘍を愛犬(先々代)は自分で噛み千切ったのでした。当時は「そこまでして痛みを誤魔化したかったのね……うう」と家族で悼んだものです。 m3.comという医…

メタエディタ中止

プロトタイプまでは作ったのだけど、使いにくかったので止め。

メタエディタのデータ構造

データ構造はComposite-Treeを使う。 > > > > * > Root 1--->1 java.io.File > 1 java.lang.String FileLeaf 1--->1 java.io.File 保存時は各>にフラグを立てておき、1回目はそのまま保存し2回目以降はreferenceとして処理する。*1 読込時は各xml要素が>に…

メタエディタ

アウトラインエディタ・アイディアプロセッサのようなものを考えた。 対象ファイルとその関連性を一覧する。 ファイル間の関連性だけをxmlで記述する。 対象ファイルの編集はそれぞれのコンポーネントに任せる。 基本的にはファイラーの上にファイラーを重ね…

Globalな変数

Globalな変数はどこからでも参照できるため、不変性が破壊される原因になりがちである。この問題を回避するにはGlobalな変数自体を不変オブジェクト化しておけばよい。さて、javaのGlobalな変数とはclass staticな変数のことなのだろうか、それともclass自体…

N次不変オブジェクト

即値・nullは*次不変である。 不変でないオブジェクトは0次不変である。 N次不変オブジェクトの持つフィールドがそれぞれ次不変オブジェクトだとしたとき、が成り立つ。

オブジェクトの不変性

即値は不変である。 フィールド全てにfinal修飾が付いたクラスのインスタンスは不変である。

変数の不変性

final修飾の付いた変数は不変である。

オブジェクトの局所性

オブジェクトの局所性についても定義しておく。 def 即値は局所的である。 def 局所的なフィールドしか持たないオブジェクトは局所的である。 ただし、不変オブジェクトは局所的であると見なしてよい。

オブジェクトの副作用

def 主作用は副作用ではない。 def 局所オブジェクトの操作は副作用ではない。*1 def 非局所オブジェクトの操作のうち、更新を伴わないものは副作用ではない。 def 以上に該当しない作用はすべて副作用である。 要点:主作用だけが非局所的であればよい。最…

即値の副作用

def 即値の参照は副作用を持たない。 def 即値の代入の返り値は副作用である。

副作用を考える

当然のことながら副作用を定義するためには主作用を定義しなくてはならない。しかし、主作用が何であるかが自明だとは限らないため、操作を定義する際に別途明記する必要がある。

Object#equals()の作法

Object#equals()はオブジェクト間の等価性を定義するためのメソッドである。そのため、不適切な定義を行えば、java.util.collectionなど、様々なフレームワークが破綻する。そのため、あらゆるフレームワークに対応するような定義について考える。 Object#eq…

長文風味

適当なコードを書くだけで長文更新になる。小説の評はまじめにボケたくなるから難しい。