2008年5月アーカイブ

OVA のストレイトジャケットを観賞して、しばらくたったので感想を上げてみます。ストレイトジャケットは榊一郎の小説を原作としたアニメーションです。作品自体、陰惨な空気の漂う世界なので OVA というチョイスは妥当だろうと思います。原作の小説は結構長い作品なので、OVA では原作の1巻の話をベースにしているとは思いますが、アイザック・ハモンド、レイチェル・ハモンドというオリジナルキャラクターに作品のテーマを託しています。

アイザック・ハモンドは主人公 レイオット・スタインバーグと対になる位置関係です。つまり、腕は一流なれど無資格というレイオットに対してアイザックは優等生的な戦術魔法士です。しかし、そうやって作られた構図はアイザックの妹、レイチェルの死で一変します。OVA で軸となるケース SA は半ば人為的に起こされた出来レースでしかも、アイザックの属するチーム「ブラック・ドッグ」のトップがからんでいた。その意味ではレイチェルは「ブラック・ドッグ」に殺された。

「ブラック・ドッグ」は意図的にテロリストに魔族テロをやらせることで、魔族退治の収入を得。そして、金員を出すことでテロリストも生存を続けるという持ちつ持たれつのテロのマッチポンプをやっていた。しかし、放たれた魔族はレイチェルを殺害し、妹を大切に思うアイザックは壊れた。そして、アイザックは戦術魔法士としての能力を使った凶行に走った。最終的にはアイザック自身モールドの破損から魔族化し魔族としてレイオットに狩られる結末を迎えた。レイオットに自分のたどり着けなかったものを見てこいとの言葉を残して…

アイザックとレイオットは対照的です。アイザックの兄妹レイオットの師であるドーベルン・スタインバーグに命を救われ、彼を規範にアイザックは戦術魔法士を目指した。一方、レイオットはドーベルンにその身を救われながらも何らかの理由で魔族化したドーベルンから自分を守るために。ドーベルンを殺害した。それゆえにレイオットは生きることにどこか絶望している。キャラクターの造詣もライトとは程遠いですから。

少なくとも、ストレイトジャケットの世界を描くという。OVA の目的は達成されていると思います。また、OVAではそこまで描かれませんが、どこかこの作品の世界は終末的な空気を漂わせています。その意味では現在、放送されているTVアニメーション "ブラスレイター" もどこか終末的です。今回のOVA化は結構、良い感じの小品に仕上がったと思います。見る価値は十分です。

ストレイト・ジャケット 第1巻 「THE CAST ~ニンゲンのクビキ~」 初回限定版 ストレイト・ジャケット 第1巻 「THE CAST ~ニンゲンのクビキ~」 初回限定版
榊一郎 榊一郎 榊一郎

メーカーオリジナル 2007-11-30
売り上げランキング : 50704

Amazonで詳しく見る
by G-Tools
ニンゲンのカタチ THE MOLD―ストレイト・ジャケット〈1〉 (富士見ファンタジア文庫) ニンゲンのカタチ THE MOLD―ストレイト・ジャケット〈1〉 (富士見ファンタジア文庫)
榊 一郎

富士見書房 2000-08
売り上げランキング : 146740

Amazonで詳しく見る
by G-Tools
Technorati のタグ:

今回の事件は SETi@Home のような分散型のクラスタリング環境が事件の主因です。計算機の分散クラスタでなら多くの場合は問題はありませんが。この事件の主因は脳の未使用領域を使用した人間の脳の分散クラスタであったために。アバターデータが当人の意識に割り込み、存在しない幽霊イメージを作り出してしまったわけです。

今回は主人公の波留真理は都市伝説の中で話題として出てくるのみです。そういう意味では、一種の箸休め的な話ですが。最後のところで、未使用領域だったからこそただの騒ぎで終わったものの。本人の自我の中核が外部から書き換えられたらという話のところで背中がざわっとしました。自我を形成する過去の記憶や人格の根本が書き換えられれば、言って見ればその当人にとっては心の死以外の何物でもないです。仮に肉体が生命活動を続けていたとしてもそれはもはや自己同一性が否定される肉塊でしかありえなくなります。

恐らく、意図としてはこちらの方を触れるというものがあったように思います。そのため、事件そのものは箸休めである必要があったのではないかと。たとえば、これがスクラップド・プリンセス原作の『獣姫の狂詩曲』でエイローテ・ボチャードを襲った悲劇のような事件であったら…。すなわち、自我を形成する中核の情報を不可逆的に変質させられるような事態ですが。そうであったなら、もはや見ていて辛いです。スクラップド・プリンセスであればそれが一種の戦争であるからこそ、悲劇は悲劇として成り立ちますが、RD 潜脳調査室には重いでしょうね。

そう考えれば、少し軽めのエピソードの中で最後にざわっとした感じで成分を混入するのは理解できる話です。今回のエピソードもなかなかスパイスの利いた興味深いエピソードでした。今後も、面白いエピソードが続くことを期待します。

RD 潜脳調査室 コレクターズBOX 1(3枚組) RD 潜脳調査室 コレクターズBOX 1(3枚組)

バップ 2008-08-27
売り上げランキング : 259

Amazonで詳しく見る
by G-Tools
獣姫の狂詩曲―スクラップド・プリンセス〈9〉 (富士見ファンタジア文庫) 獣姫の狂詩曲―スクラップド・プリンセス〈9〉 (富士見ファンタジア文庫)
榊 一郎

富士見書房 2001-10
売り上げランキング : 186036

Amazonで詳しく見る
by G-Tools
Technorati のタグ:

Joy of Setup の "New WiX feature: Gaming extension" に WiX を利用したゲームのインストーラの生成の記事が出ている。Windows Vista には Game Explorer という仕組みがあり、ゲームを管理する統一的な仕組みがある。しかし、Game Explorer を動かすには Game-Definition-File (GDF) というファイルを適切に作成する必要がある。

WiX の Gaming extension は以下の機能を実行するカスタムアクションであるとされる。

  • ゲームを Game Explorer に登録する
  • Game Explorer 内のゲームにコンテキストメニューを追加する
  • Windows XP にインストールした際には Windows Vista へのアップグレード後に Game Explorer で使用可能にする
  • rich saved-game preview ハンドラを登録する

Gaming extension は次週の WiX v3 のリリースで実装されるとされる。

もちろん、レーティングがらみは Game-Definition-File をリソースに持つ、DLL/EXE が適切に署名されている必要がある。レーティングを詐称できれば意味はないので、これは当然と言える。

私が期待している、RPG "Fable 2" のパッケージアートが Fable 2 Development の "Fable 2 in San Fran" に出てきていますね。なかなか、よさそうなパッケージアートです。

Fable はポピュラス、ダンジョンキーパーなどで著名なピーター・モリニューが監修を務めるロールプレイングゲームです。ポイントは自由度の高さですが、自由度が高いことで定評のある The Elder Scrolls 4 Oblivion (以下、Oblivion) とも少々異なります。Oblivion は進行についての自由度の高さはわざわざ解説するまでもないでしょう。ただ、キャラクターの外見は静的で、キャラメイクの段階で決定されます。Fable はキャラクターの外見が動的でプレイによって影響を受けます。

そういう意味では、Oblivion は TRPG などで培われたロールプレイングをコンピュータ上で高い完成度で実現したといえます。しかし、Fable はその点よりも、どちらかというと動的なキャラクターの変化というところに重要な力点があるのかなと思います。もちろん、どちらがいいというわけでもなく価値判断の問題であろうと思います。確かに、キャラクターメイクの段階である程度、固定するというのも一つのデザインですし。ただ、Fable のような構造だと、転落人生も悪行の贖罪もプレイ可能にできるであろうことから、それはそれで面白いロールプレイングが楽しめるだろうと思います。

ただ、前作の Fable が理想をすべて実現できたかと言えばそうではなく、達成できなかった理想は少なからずあります。Xbox Live に対応していないことや、キャラクターは男性のみであることなど結構制約条件が多かったです。少なくとも、今言ったようなことは Fable 2 では相当に拡張されているようで、キャラクターメイクも楽しくなるでしょう。もっとも、前作 Fable ではキャラクタークラスというのはなくて成長を通じてキャラクターを形作っていきましたから、始めるのにはそれほど手間はかからないだろうと思います。

Fable 2 Trailer
Fable 2 Trailer

Technorati のタグ:

見ていない作品を本来、論評するのは適切ではないのだが。ニューズとして取り上げる価値はあるだろうと思う。かのこんというライトノベルのアニメ化作品があるようだ。原作も未見であるので正確なところは存じてはいないのだが、どうやら風評を見る限りでは性描写が一つの売りになっているらしい。結果的に、GyaO などの倫理規定を逸脱してしまい、配信が6話で打ち切られることになったようだ。打ち切りはGyaO に留まらずバンダイチャンネルのインフラで配信していた、@Nifty や BIGLOBE など他のメガプロバイダにも及んでいる。

昨年来、この種の放映・配信におけるトラブルが続いている。知られている範囲では School Days、ひぐらしの鳴く頃に解が知られている。どちらも残虐描写が問題となったケースではある。しかし、性描写・残虐描写ともに規制の影響を受けやすいセンシティブな表現ではある。その意味では動向を測るカナリヤのような意味合いもあると言っていい。

今回の場合は、時期としてもいささか微妙な時期に起きている。いわゆる、インターネットにおけるフィルタリング問題というプロバイダにとっても死活的な問題がある時期である。特に所謂、高市法案という憲法的にみてもかなり危険な法案を押し出す議員がいる時期である。プロバイダ側としても彼女を跳梁させる危険もあると判断したのかもしれない。規制に前向きな自民党でさえ、高市法案の受けは良くない。実際、総務省の検討案は高市法案ほど戦闘的なものではない。もっとも、これでももたらす萎縮効果などは問題のあるものだと認識しているが。

そういう時期である、プロバイダがいわば組織防衛に走るのを止めにくい条件がそろっている。そういう意味では、恰好のスケープゴートになった懸念はぬぐえない。ただ、残虐描写・性描写だけがクローズアップされてしまうような作品を作ってしまうところにも一抹の不安が残る。DVD 等の販売が頭打ちになりつつある以上、刺激的な描写で人目を引こうというのは営業上、避けられないのかもしれない。しかし、結局、それだけがクローズアップされるのは規制をしたいと考えている輩に格好の口実を与えてしまい、結局は自分の首を絞めることになりはしないかとも思う。

高市法案がいまだに死んでいないらしい件に関しては、崎山伸夫のBlog のエントリー "高市法案がいまだ死んでいないらしい件" が詳しい。こういった、表現規制の強化に突き進みがちな議員は自民党以外に民主党にも存在し円より子議員のように「少女アダルトアニメ雑誌とゲームの製造・販売の規制法制定に関する請願」などで具体的な行動に出ている人物もいる。もっとも、彼女の請願は科学的な根拠を全く欠いており容認しがたい。というか、戦後一貫して青少年の殺人・強姦事件の件数が減少していることを事実として認めながら、

街中に氾濫している美少女アダルトアニメ雑誌やゲームは、小学生の少女をイメージしているものが多く、このようなゲームに誘われた青少年の多くは知らず知らずのうちに心を破壊され、人間性を失っており、既に幼い少女が連れ去られ殺害される事件が起きている。
と、結論するのは論理的に矛盾する。

名も無き市民の会 BLOG のエントリ "とんでもない請願があらわれた!" によれば、この請願は主体が大阪府内の任意団体 カスパルによって行われた可能性が高いとされる。Wikipedia の記載によれば 2004 年初頭からいわゆるアダルトゲーム撲滅を主張するようになったとされる。問題は、この請願の文言自体、先に引用したものを含め、科学的に疑わしいばかりか、表現の自由以前の問題であるなどと憲法含む諸法律との整合性を全く考えていないことである。

確かに、この種のものに内容上問題があり、不愉快なものが存在することは承知している。しかし、かといって表現の自由以前の問題と重要な人権を否定するのはいただけない。そういったことを認めれば、性の自己決定権という人権もまた風前の灯となる。自己の過去の姿勢に矛盾する請願を仲介した議員の姿勢はいかがかと思う。

犬と人間の精神が入れ替わってしまったことに端緒がある事件です。ナノマシンなどを駆使した電脳化が進んだ世界なので、脳の物理的なハードウェアの差を乗り越えてしまっているのではないかと思われます。人間の精神というソフトウェアを、犬の脳というハードウェアで稼働させるのは少々無理がありますからね。逆もまた然りだと思われますが。

ポイントはダップーの姿で依頼をしにきた石尾氏は (恐らく、犬好きで知られる押井守氏の姓のアナグラムだと思いますが) 犬と同じになりたかった。彼の思いは犬と人の差は主従という関係性になる、そしてそれは真のパートナーシップではないのではないかという思いです。これは、ストーリーのテーマとも関連がありますがパートナーシップとは同一化が究極の到達点なのかという問いにつながるでしょう。

しかし、違うものだからこそパートナーシップを求めるというのも一つの答えではないかと思います。アイドルマスター XENOGLOSSIA において、如月千早はインベルと溶け合おうとしました。しかし、インベルはそれを拒否した。これと同じ理屈で相手に同化してしまってはそれはもはやパートナーシップではないのではないかと思います。つまり、異なる者が手を取り合うところに価値があり、同じ者になることを指しているのではないのではないかと。

システムとして考えれば、同じ者であれば同じところにウィークポイントがあります。工学的には単一障害点 (Single point of failure) と定義できるでしょう。生物は同じ者を作らない、しかし有利な形質は後に伝えるという一種の矛盾した要件を遺伝というシステムにおいて託してきたと思います。それゆえ、異なる性の間で染色体を半分づつ掛け合わせるという形が残ってきたのではないかと思います。

その意味では石尾氏は誤ったのではないかと思います。そして、それを伝えたのはダップーとの触れ合いというところに面白さを覚えます。面白い、ストーリーの話であったと思います。

Technorati のタグ:

単一障害点: システム内の特定要素に障害が発生した場合に、その要素の障害に起因してシステム全体において、必要なサービスの一部又は全体が提供できなくなってしまう、そのような要素。すなわち、同一の存在であれば障害が発生する状況下では全ての個体で発生する可能性が高い。この場合、種を一つのシステムと考えて単一障害点という単語を用いている。

まさに、「持たざる者は持てる者を妬み、持てる者に持たざる者の気持ちは判らない」ですね。私が最初に聞いたのは機動戦士ガンダム SEED のクルーゼの台詞ですが。一つの現実ではあろうと思います。

この話の憎悪はなにか? ヘルマンのジョセフへの憎悪、マレクの世界への憎悪。ヘルマンの憎悪は状況全てが見えないことに起因する一種の誤解が生んだものですが、マレクの憎悪は根深いです。名前などから察するに舞台となっているのはドイツ周辺部と推測しますが。欧州も移民の流入などでいろいろきな臭くなってきていますから。実際、移民の排斥を唱える右翼政党が支持を伸ばしたりしていますから。今を写しているように思います。

そして、マレクの世界への絶望と憎悪は、親友であったヨハンの横死で決定的なものとなります。マレクの苛めに加担したヨハン、しかしそれもヨハンが苛められていたためであり。苛めに加担したことはヨハンに幸せを齎さず、マレクの反応はヨハンに深い嘆きと絶望を齎した。結局、ヨハンは死というところに逃避する以外なくなってしまった。

絶望するマレクに接触してきたのはやはりベアトリスですか。ゲルトを融合体へと変えた、あの薬を持って。今度はマレクが絶望のさらに底を覗く番ですか。絶望が激しいだけに、暴走するんでしょうね。そして、暴走した融合体に待ち受けるのは、死ですらなく滅であることを知る由もなくといったところですか。まあ、ジョセフに狩られるか、XAT に狩られるかの二者択一。どちらも破滅でしかないというのに。

マレクのたどった道程はストレイトジャケットのファネット・ダウランドの道程と軌を一にします。ファネット・ダウランドも苛めに耐えかねて、一発逆転を言わばとっかかりにしてモールドなしの魔法詠唱、すなわち魔族化の道を辿ります。魔族化の道は全ての人権を剥奪されて極地災害として狩られるだけ。ストレイトジャケットの言い回しを借りれば、生きることにも死ぬことにもしくじった、哀れな末路です。

マレクが辿るは恐らく、道化としての哀れな末路でしょう。そして、間違いなくそれがもたらすのはアマンダへのさらなる苦しみ。そして、マレクの思いとは裏腹に移民がさらに苛烈な迫害を受けることです。どうも、この世界は破滅へ向けて疾走しているようにしか見えないですね。Blaßreiter の意味は青白い乗り手ですから、どうにも黙示録の青ざめた馬を連想しますね。

デタラメな残像 デタラメな残像
GRANRODEO 谷山紀章 飯塚昌明

Lantis(K)(M) 2008-05-14
売り上げランキング : 114

Amazonで詳しく見る
by G-Tools
BLASSREITER BLASSREITER
松風雅也 伊藤静 石塚運昇

TOEI COMPANY,LTD.(TOE)(D) 2008-08-08
売り上げランキング : 1298

Amazonで詳しく見る
by G-Tools
Technorati のタグ:

Kazzzz の日記の"言語が思考を規定する" というエントリが面白いので。確かに、プログラミング言語はそれが想定しているモデルがあるので問題解決に与える影響は少なくないと思います。

それをちょっと考えるのに一つの問題を設定して考えます。問題設定はnを1から初めてその2乗を足していき、和が2000を初めて超えたとき和はいくつになるかという問題を考えます。通常の、C++ 言語で考えれば以下のようになるでしょうか。

#include <iostream>
using namespace std;
int main() {
	int sum = 0;
	int n = 1;
	while(sum > 2000) {
		sum += n * n;
		n++;
	}

cout << sum;
return 0;
}


Code 1: C++ Version

これを、F# で記述すると以下のようになります。

open System
let square x = x * x;;
let rec squareAdd sum current maximum = 
	if (sum + square(current)) > maximum then
		(sum + square(current))
	else squareAdd (sum + square(current)) (current + 1) maximum;;
let main = System.Console.WriteLine(squareAdd 0 1 2000);;
Code 2: F# Version

コードを考えたときには、F# の方が考えやすかったです。というのも、F# の場合、ループではなく再帰で実現されているためです。再帰的な問題というのは再帰的な定義が書きやすい言語の方が解がイメージしやすいです。言語が変われば解を導く方法論も変わり、結果的にそれは成果物にも反映されます。異なる言語を学べばいろいろな解が得られるようになります。ポイントは異なる思想のもとに作られた言語を学んでいる方が得られるものが多いことでしょうか。

Technorati のタグ:

RD 潜脳調査室 は今季かなり楽しんでいるシリーズです。プロダクション I.G の士郎正宗作品ということもありますが、かなり面白い仕掛けが仕掛けられている話が多いです。アクションというより、謎解きのウェイトがかなりを占めますが、映像も奇麗でいい感じです。

今回の話は全体の中では、ちょっとイレギュラーな作りでメタ・リアルへのダイブが出てこない話です。しかし、流れの中では主人公 波留(はる)真理(まさみち)の過去につながる話が出てきたりと面白い話がいろいろ入っています。とにもかくにもキャラクターを絡めたストーリーテリングがよくできていていい、シナリオだと思います。

作品として、びったし回った良い回だと思います。これは、見るものがある話です。波留真理役のベテラン 森功至氏の演技も光っていますし。設定年齢 82才 というのも今回はうまく生きています。時を越えた手紙と言えますね。今回の話は、語ろうにもうまく言葉が出てきませんね。

Technorati のタグ:

ブラスレイターは今季、もっとも強力なダークホースでしょうね。作品的には孤高のヒーローという像をうまく表現できているかと思います。作品の1話とかは板野サーカス以外の出し物が不明でしたが、非常に安定したシナリオになってきていると思います。

今話に関しては、何といってもゲルト死すといったところでしょう。というか、衝撃的でした。コードギアスが万事予想の通りに進行しているため。シナリオ的には驚きがないため。驚きをもって目をくぎ付けにするという感覚はブラスレイターに移行した感があります。

鴉を見ていると、映像的には驚きは少ないのですが。板野サーカスもあって見どころのある面白い作品になってきています。ゲルトが死んだことでここからどう展開するのか目が離せないですね。視聴者から見た主人公はヘルマンあたりが近いのでしょうけどね。シナリオに合わせて受動的に動いていることもあって。

ジョセフは能動的に動いているという事情から、主人公のはずですが。主人公のようには見えませんから。ただ、世界の謎がいろいろ開示されてくれば、それによって徐々に主人公のように見えるようになるのではないかなと思います。アクションはかっこいいキャラクターですからね。

デタラメな残像 デタラメな残像
GRANRODEO 谷山紀章 飯塚昌明

Lantis(K)(M) 2008-05-14
売り上げランキング : 114

Amazonで詳しく見る
by G-Tools
BLASSREITER BLASSREITER
松風雅也 伊藤静 石塚運昇

TOEI COMPANY,LTD.(TOE)(D) 2008-08-08
売り上げランキング : 1298

Amazonで詳しく見る
by G-Tools
Technorati のタグ:

コードギアス 反逆のルルーシュ R2 の第7話です。まあ、前話までの流れとしてゼロの復活から一転してナナリーとの対話でルルーシュはゼロである raison d'être を失ってしまったわけです。なぜかは言うまでもなく、ルルーシュ自身が言うようにゼロはナナリーのためにあった。しかし、ナナリーにゼロを否定されてしまった。それは言うまでもなくゼロによって成り立っていたルルーシュ自身の raison d'être に痛撃を与える結果になった。ほとんど、結果ルルーシュ自身がほとんどボロ雑巾同然になり果てた格好になりました。

誰しも、仮面をかぶることがあります。それは仕事上であったり、他人との生活において波風を立てないためだったりします。しかし、仮面はいつか自分のものになります。でも、ルルーシュの仮面は彼のものであったか? 少なくとも、ルルーシュは自分でかぶった仮面について、自分自身で考えることを放棄し、ただ戦術的な推移に合わせてただ場当たり的に対処してきたにすぎません。

追及するのは他人ではスザクやニーナだけだったとしても。彼自身、アクシデントの結果とは言え、ユーフェミアの死に関して大きな責任があるわけです。それらの責任から逃げ、薬物に逃避しようとしても誰も許してはくれないでしょう。しかし、C.C. は事実を知ってはいても、ルルーシュを導こうなどという意思は欠片もありません。C.C. が重視するのはルルーシュとの契約の履行のみです。結局、ルルーシュを導く役割はカレンに委ねられたわけです。

ルルーシュを慰めろという言葉に対して、皇神楽耶ならルルーシュの正体を知っていたと仮定しても唯々諾々と従うのみでしょう。C.C. にしても本質的に彼を導こうという意思は欠落しているので顔をひっぱたいたりはしないでしょう。カレンのみが明白にノーという意思を、ルルーシュの思いをある程度斟酌した上で出したわけです。その意味では皇神楽耶はまったくパートナー足り得ていません。せいぜい、協力者どまりです。

やっと、自分を再建し行動できるようになったルルーシュなんとも、なさけないダークヒーローです。まあ、黒の騎士団のやることはなくなっていないでしょう。ブリタニア皇帝シャルルの言動を見る限り、ナナリーの行政特区日本に援助してくれるとは到底思えないので。形はどうあれナナリーの行動もシャルルに対する反抗であろうと思います。無論、ナナリー自身はシャルルの意図に気付いていないでしょうからわからないとは思いますが。

コードギアス 反逆のルルーシュ R2 volume01 コードギアス 反逆のルルーシュ R2 volume01
福山 潤 水島大宙 櫻井孝宏

バンダイビジュアル 2008-08-22
売り上げランキング : 57

Amazonで詳しく見る
by G-Tools
コードギアス ナイトメア・オブ・ナナリー 1 (1) (角川コミックス・エース 175-1) コードギアス ナイトメア・オブ・ナナリー 1 (1) (角川コミックス・エース 175-1)
たくま 朋正

角川書店 2007-06-26
売り上げランキング :

Amazonで詳しく見る
by G-Tools
Technorati のタグ:

F# では関数を引数として取る関数や、関数を戻り値として返す関数を作ることができる。.NET Framework 上でどのようなアセンブリになっているのか関心があったので調べて見た。

まず、次のようなコードを定義する。

let add x y = x + y;;
let mul x y = x * y;;
let calc f =(f 2 3);;
let addx x = add x;;
Code 1

この場合、関数 add は 2 つの引数を取って足した結果を返す関数です。同様に関数 mul は掛け算した結果を返す関数です。さてでは、関数 calc と関数 addx は何なのか?

この場合、関数 calc は引数を 2 つ取る関数 f を引数として取り、関数 f に 2 と 3 という引数を与えて答えを返す関数です。つまり、先程の話では引数として関数を取る関数です。関数 addx はもっと、面白い挙動で、この場合引数を 1 つとって、関数 add の残りの引数を引数に持つ関数を返す関数です。計算機科学ではカリー化とも言います。

さて、F# でこれらができるのがわかったところで、コンパイルした結果のアセンブリがどのようになっているかを見てみます。まず、calc からです。

public static T calc(FastFunc<int  , FastFunc<int  ,T>> f)
{
	return FastFunc<int int ,>.InvokeFast2<t>(f, 2, 3);
}
Code 2

次に、addx です。

[Serializable]
internal class addx@4 : FastFunc<int, int>
{
    // Fields
    public int x@1;

// Methods
public addx@4(int x@1)
{
this.x@1 = x@1;
}

public override int Invoke(int y@1)
{
return Highorder.add(this.x@1, y@1);
}
}

public static FastFunc<int, int> addx(int x)
{
return new addx@4(x);
}


Code 3

上記の結果は、F# 1.9.3.14 のコンパイルの結果を .NET Reflector で C# で逆コンパイルしています。見ての通り、calc はある程度想定したとおりですが。addx は 一つのパラメータでインスタンス化した Invoke というメソッドを持つ関数を返す構造になっています。

関数の参照は delegate という形で簡単に表現できますが、関数を返すにはオブジェクトなどの形になっていないと面倒なことになるのでこういう形になったのでしょう。理屈の上では .NET Framework 3.5 以上ではラムダ式とかも使えるはずですが。関数が完全にファーストクラスオブジェクトというわけではないですからね。ラムダ式自体にも制約がありますし、なんでもできるわけではないですから。



Foundations of F# (Expert's Voice in .Net) Foundations of F# (Expert's Voice in .Net)


Robert Pickering



Apress 2007-05-28


売り上げランキング : 24771



Amazonで詳しく見る
by G-Tools

Technorati のタグ: ,

Recent Tracks

gorn708's Profile Page

このアーカイブについて

このページには、2008年5月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年3月です。

次のアーカイブは2008年6月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Adwords