わかりやすくキャラ付けされた田口と白鳥が、原作の派手めのイベントの継ぎ接ぎをなぞっていく構成になってて、無理な皺寄せがいろんなところに波及していて目もあてられない。途中から半泣きになりながら見てました。キャラ付けはあれはあれでいい気もするけど、構成はもうちょっとなんとかならなかったんだろうか。堺雅人が演じる本編の主役であるはずの速水の姿を楽しみにしていたのだけれども...あの格好よい速水はどこへいった?速水の葛藤や、その脇をかためるべき黒崎や佐藤の思いはどこへいった?泣ける。これは「大事故発生してめでたしボム発動」と言われてしまってもしょうがないなあ。原作でもそういうイベントはあるけども、確かにボム発動でうやむやになった面もあるけれども、あそこまで全てを消しさる安直なボムではなかったと思う。バチスタはもうすこしまともだったような気がするんだけどなあ。見るセガ・チュンプロジェクトのWiiゲー「428」を買ってひととおりクリアした。これはおもしろかった。「428」は5人の主人公が交錯しつつ4月28日の10時から20時までの10時間の物語を進めていくサウンドノベル。むかしなつかしい「街」システムで、ある主人公の選択が他の主人公の展開に影響を与えたりする。実写をベースにした静止画だった街とは違って、たまに動画がはいったり、静止画でも微妙に動き(スクロール)がついてたり、音楽もよくなってる。地味にバージョンアップ。システム的に街とちょっとだけ違うのは、全体の話の区切りの単位。各人の行動が他の人に影響するのが1時間の単位で閉じている。全員の1時間をうまく経過させられると、そこで次の1時間がはじまる。街だと1日だったっけ?単位が短めになってるので、テンポよく進められるし、次の1時間に進めるところではいる予告の煽りっぷりもなかなかよし。あと、「街」ではそれぞれの主人公がそれぞれの目的を持って動いてた感じだけど*1、今回のは誘拐事件を発端にしたひとつの大事件へと話が集約されていく。解決に辿りつくにはそれぞれの立場で正解ルートを選ばないといけないんだけど、それも各人が解決に向けてちょっとずつ努力して影響をおよぼした結果に感じられてプレイ感もよし。正直なとこ、「街」だとおもしろい話もあればつまんない話もあって、全体の話をすすめるために嫌々消化してた話もあったりしたけど、今回はメインの事件に対する重要な役割がそれぞれの主人公に順番にまわってくる感じで、つまらないパートはひとつもなかった。しだいに事件の全貌が見えだしてそれぞれの人の話が噛み合いだす昼以降の展開の加速っぷりは異常。ハリウッド映画的な話の転がりかた。いうの結構好きなんです。序盤は丁寧なチュートリアルがついてるし、チュンソフ党な人じゃなくても、サウンドノベルに抵抗のないWiiユーザーはみんな買えばいいと思うよ。二つ目のボーナストラックは...個人的には本編を台無しにしてると思うので、それだけは見なかったことにしたい。なんで付けちゃったのかね。映画は予想外に良かった。何がよかったか、というと、犯人である数学者・石神を演じる堤真一さんの演技があまりにすばらしかったのだ。hiroyukikojimaの日記そうそうそうそうそう。忘れていたが容疑者Xの献身の映画を見たんだった。映画のキャストをはじめて聞いた時は、「え?原作ではがっちり体型で頭薄の石神役が堤真一?全然キャラ違うじゃんどうするつもりだ」と内心あきらめておったのですが、堤真一がちゃんと夢を断たれた失意の数学者に見えたので、それだけで満足してしまったのだった。(原作にはまだでてきてなかった)内海薫も映画だからといって妙なことをしでかすことなく、ほとんど何もしなかったのもよかった。原作は地味な地味な話なので、映画では派手な脚色やら設定の変更やらいろいろ追加されてたけどそれは気にしない方向で。松雪泰子もよかったし。読者になる広告を非表示にするもっと読むコメントを書く2008-11-16wcコマンドの実装を通してArrowの気持ちを推し量ってみたhaskell"モナドの一般化"なんていう敷居がやたら高いふれこみのArrowをちょろっと調べてみた。ha-tanさんのサイト(http://d.hatena.ne.jp/ha-tan/20070810/1186744818)と、そこから参照されているページをひととおり読んだ。モナドがわかる人には多分、Monadは、値をからくり箱に入れたもの。からくり箱は基本的に(ヘンな)値。Arrowは、関数をからくり箱に入れたもの。からくり箱は基本的に(ヘンな)関数。わかりませんという説明でなんとなく通じるかなあ。Monadが型クラスなようにArrowも型クラス。もって、Arrowの場合はからくり箱の中身が関数なので、型情報によって処理をふりわけるっていう性質がモナドより強い(気がする)。ストリームファンクションはそのよい例で、関数の型を、Arrowのインスタンス型のどの型だと推論/定義するかで、関数自体の定義は全く変えずに関数の対象が値からリストにがらっと代わる*1。試してないけど、Arrowとして定義されている関数には、Arrowのインスタンスの型を後付けしてやることによっていろんな処理ができるんじゃないかなあ。関数の返り値を全部ログに取る、なんてのも書ける気がする。書けなかったらごめんなさい。http://d.hatena.ne.jp/ha-tan/20070814/1187046533を参考にwcコマンドの実装をしてみた。確かにタプルでパターンマッチさせるのはいまいちだな、と思ったのでさらに、http://d.hatena.ne.jp/takkan_m/20070814/1187102348を参考にパターンマッチをほんのりラップしつつ、自分なりにArrowの気持ちが一番わかりやすい形で組みたててみた。m"型のデータ構築子でもある。b"という型を持っている。()"となって、型の整合性はとれている。IO"型に推論されていて整合性がとれる、と。あと、wcとa3_showには、うざったい型宣言が書いてあるが、これは省略してもちゃんと動く。Int))"と推論されてしまうから。IO"はArrowのインスタンス型で、つまり、省略すると本来はArrowという型クラスでいいはずの型が具体的な型に推論されてしまう。さっきも書いたけど、多分Arrowのうまみは(多分)型情報によって処理を切りかえるところなので、具体的な型になってしまうとそのうまみがなくなっちゃうと思う。two\three"(1,(3,12))なんていうのも動作する。(Int,(Int,Int))"と推論されて動作してるわけだ。..."と推論されてしまっているとこのコードは型エラーで動かない。乱暴にまとめると、Arrowはモナドみたいにシーケンシャルな結合だけじゃなくて、分岐や(ここでは使ってないけど)繰り返しを表現する演算子を使って結合させることができて組み立ての自由度が高い。Arrowな演算子で実装した関数は(ちゃんとArrowな型宣言を書いておいてやると)いろんなArrowのインスタンス型と整合してくれる。上のコードの中ではwcを一行も書きかえることなく、IOモナドな関数および普通の関数として動作してくれる。Arrowをうまく使うと非常に再利用性が高い関数群が定義できるはず。いうことは、Arrowの使いこなす上で鍵になるのは、Arrowのインスタンス型をいかに上手く定義できるか、ということになるような気がするんだけど、他に典型的なArrowのインスタンスってどんなのがあるのかな。ブログを報告する引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。