録画しておいたBSで放映された映画を見る。
遺伝情報で将来が決定され、新たな社会差別が起きている近未来、 遺伝的にハンディキャップを負っている主人公が、 チェックを逃れつつ、宇宙を目指す、 というお話。
あまりにひんぱんな血液検査とか、あまりにも遺伝情報だけに依存した社会とか、 この映画の道具立てはかなり非現実的ではあるが、 考えてみれば世の中の差別なんてその根源はどれも非合理なものばかりである。 部落差別しかり、ナチの優生学しかり。 そういう観点からはこの非現実性はかえって含蓄があるかもしれない。
人権問題として闘うとかいう話でなく自分の夢を実現したいだけ(経歴詐称は犯罪だけど)、 というのも共感できる。
ただ、私ってばこういう「嘘をついてて、ばれそうになる」という黄金のパターンがどうしても駄目で、 嘘が発覚しそうになるたびになんかむずむずしてじっとしていられなくなる。 ロビン・ウィリアムズの『ミセス・ダウト』も同じ理由で駄目。
妻には「自分の嘘じゃないんだし、そういうものと思って見てればいいじゃない」と言われて、 確かにもっともなのだが、生理的に駄目なのだ。 彼女がジェットコースターが生理的に駄目なのと同じでどうしようもない。
私は詐欺師にはなれそうもない。マーケティングも辛いかも。
同じく録画しておいたもの。 60年代のテレビシリーズのリメークとのこと。
イギリス人ってこうなのね、という誤った先入観を助長するような映画。
イギリス人は
たぶん自虐ネタだと思うんだけど、自信がない。
ところで印象に残ったのは「イギリスの科学はァッ世界一ィィィッ」という点だ。 いや、そんな台詞は出てこないんだけど(それは漫画です、しかもドイツだし)。
多くの映画では、舞台となる国が特別な技術を開発するものだ。
なんか選び方にバランスを欠くが、それはそれとして。 やはり映画にもナショナリズムが現れるものらしい。 自国が優れているというのは制作者にも観客にも心地が良いに違いない。
それよりショーン・コネリー、出演映画を選べよ。
Feature Freezeしたんじゃなかったのと思いつつ、 こういうことをしてしまうのが私の性格のいいかげんさというか、 「優しい独裁者」の特権というか。
const_missing
定数が無かった時に呼び出すメソッド。引数は定数名。 デフォルトではNameErrorをあげる。
END手続き中のexit
ENDまたはat_exitで追加した手続きの中でexitが呼ばれた場合、 そのexit statusが用いられる。複数の手続きがexitを呼んだ場合、 最後に実行したもの(最初に登録されたもの)が用いられる。
もうすぐ1.8.0 preview4を出します。
Satherの話をきっかけに、 静的型言語好きの前田くんと、 静的型について議論する。
Rubyなんて動的型の代表みたいな言語を作っている私だが、 実は昔はEiffelの影響を受けて静的型オブジェクト指向言語至上主義だったのだ。 卒論で作った言語も静的型言語だったし。
静的型のメリットと言えば、以下のようなものであろう。
最適化しやすい。
型情報が分かっていれば、 動的結合を省略して直接呼び出しを行ったり、 式の展開・畳み込みを行う余地がある。 Rubyみたいな言語を作ってると「お前は最適化にウラミでもあるのか」というくらい最適化しにくい。
間違いが検出しやすい。
型情報で全部の間違いが検出できるわけではないが、 単純なタイプミスやロジックミスが型の不整合として検出できるのは、 「実行してみないと分からない」動的言語よりも嬉しい
もちろん、どちらも嬉しいのだが、スクリプト言語が台頭した背景を考えてみると、 実行効率に貢献する「最適化」よりも開発高率に貢献する「間違いの検出」の方が重要度が高いといえるような気がする。
しかし、実際には最近登場する言語の多くは動的な性質を多く持ち、動的な型を持つ言語である。 静的型言語の方が優れているとはいちがいには言えない。
静的型のデメリットはこんな感じだろうか。
全ての変数に型を書くのは面倒くさい
たくさん書くことでチェックに使える情報を増やしているわけだから当然と言えば当然だ。 ただ、代入による型伝搬(Satherにある)や型推論(MLやHaskellにある)で軽減することができる。
柔軟性が減る
たとえば、Rubyであればwriteメソッドを持つオブジェクトならなんでも出力先にできるが、 静的型言語ではそのような柔軟性は困難だ。 いや、interfaceのようなものを用意してそれを継承すれば理屈では可能だが、 実際にはあまり活用されていないようだ。
ということは、実行効率にはとりあえずこだわらず、 できるだけ(動的型言語に近いレベルで)簡潔に記述でき、 かつ柔軟性を減らさないような型の運用を積極的に支援するような静的型言語の登場する余地はあるのではないか。
たとえば、こんな感じで。
なかなか面白い言語になると思うのだが。たぶん私はRubyと心中すると思うけど、 若い人には新しい発想の言語を作り出してほしい。
うーむ、langsmithネタかな。
lamdaの記号をどうするかという問題はあるものの、 実際に動かしてみないとイメージが掴めないので、 ごそごそとparse.yをいじってみる。 半日ほどのハックで動くようになった。
NODE_ARGSの構造が変化してしまった。 Yarvに迷惑がかかるかな。
とりあえず、動いてはいるようだ。 これをコミットしたものか。
で、実装した新lambdaはlambdaに対応する記号の部分だけ lexerをいじれば簡単に変更できる。
今のところ、最初の案の通り「->」を使っているのだが、 「関数型言語の文化圏からすると引数の前に -> が来るのは激しく気持ち悪い」という指摘も受けている。ここで案についてまとめておこう。
もともとの案。実はPerl6から来ている。Perl6ではRubyのブロック相当を実現する文法として、 「->」が使われており、たとえばfor文が
for list -> x { ... }
のような文法になっている。「->」でパラメータに代入しているというイメージか。 また、ここから派生してクロージャは「-> x { ... }」で表記している。
Perl6はRubyと文化圏が近いため、参考にするのは悪くない、ような気もするが、 そもそもPerl6はいつ実用化されるのか、とか、使われないんじゃないだろうか、 とかいう懸念もある。この記法はブロックとして使われるときには(代入を想起させるので)、 そんなに悪くないんだけど、単体のlambda式として考えると
proc = ->(x, y) { ... }
という記法で、あんまり関数っぽくない。
Haskellではlambdaにバックスラッシュが用いられている。 これは「\」がギリシャ文字のlambda(λ)に似ているから、らしい。
それは分からないでもないが、UNIX文化圏ではエスケープの意味が強すぎるので 受け入れられないような気がする。
proc = \(x, y) { ... }
では、エスケープされた括弧というイメージが大きすぎるのではないか。 文化の違いというのは大きいものだ。
あと、フォントによっては「¥」マークになってしまうのも痛い。
じゃあ、バックスラッシュ二つ重ねるのはどうだろう。
proc = \\(x, y) { ... }
ひとつだけよりはマシのような気がする。が、
ary.each \\(x) { ... }
という使われ方を考えると、視覚的なヒントが少な過ぎる。 この記号を採用した場合にはlambdaとしてだけ使い、 ブロックの記法には使わないようにすべきだろうな。
この案も「¥」マーク問題を無視できない。
ま、結局はブロックとlambdaのどちらに重きを置くかという点のような気がする。 もともと現在のlambdaのパラメータ指定がメソッドの引数と同一でないのが最大の不満だったので、 lambdaの方を強調すべきなのかもしれないが。
現時点では、各案に順位を付けられるほど考察が進んでいない。
長女の吹奏楽の発表会で県民会館へ。
ついこの間始めたばかりなのにもう発表なのか、と思わないでもないが、 一生懸命やっているようだった。もっとも、彼女の演奏している音が識別できたわけではないが。 団体だとその辺は有利だよな。本人曰く、「めっちゃ緊張した」そうだが。
同じ1年生でもパーカッションの娘は、出来がはっきりわかっちゃうから大変だよなあ。
教会の活動でバーベキュー。 マリンパーク多古鼻にて。
ここは広くて気持ちの良いところだ。 景色もいいし。
で、肉焼いて、野菜焼いて、スイカ割りして。 ブラジルからの輸入だという肉がおいしかったよ。 しばらく肉焼き当番をしてたんだが、 いろんな焼き加減でいろいろ味が変わって面白かった。 日本人、アメリカ人はあまり火を通さない柔らかい肉を好み、 ブラジル生活体験がある人はちゃんと火が通った肉を好むような気がする。
んが、みんな食べ物に夢中で、もうちょっと交流しても良かったんじゃないだろうか。
楽しかったけど。
うちに帰ったら、娘がYouTubeを見ていた。
娘の同級生にはブログを解説開設している子もいて、
それにコメントを入れたりもしているようだ。
教えなくてもいろんなことができるようになったものだ。
夜、教会の掃除をしてくる。 掃除機をかけたり、 いすを並べたり、 ゴミ捨てをしたり。
あと、黒っぽい茶色をした、流線型の形をした 昆虫を4匹ほど退治した。普段食べ物を置いてないのに、 なんでこんなにいるんだろう。
いろいろと思うように行かなくて、 教会の駐車場に入った時点で10時であった。 集会スタートが10時なので、厳密には遅刻である。
今日は司会のはずだったのに。
ビショップにお願いすることになってしまった。 ごめんなさい。
日曜学校は現代の教会について。 現代の教会の組織と運営の概要について。
神権会は「赦し」について。
昨年の秋に起きたアメリカのアーミッシュコミュニティで発生した殺人事件(少女10名が人質になり、結果的に5名死亡、5名重傷、犯人は自殺)において、 アーミッシュの人たちが、犯人も犯人の家族も許し、 葬儀に犯人の家族を招待し、 被害者のために集まった寄付金の一部を分け与えた、という話。
最近、悲惨な事件の犯人を「決して許さない」とする遺族の人が多い。 気持ちは理解できる(私も家族が殺されたら、そう感じないとは限らないし)。 日本の社会は、この「不寛容」を許容している(むしろマスコミとか後押ししてる) ように思える。
しかし、いくら怒っても、犯人が死刑になっても、被害者は帰ってこない。 クリスチャンは、このような事態にあって、「赦すこと」を勧めている。 一見、不自然なようだが、これこそが平安を招く態度だと思う。
私は赦す勇気を持つ人たちを尊敬する。
もちろん事件の再発は防ぐ努力が行われるべきであるが。
午前中はたまったメールを片づける。
なんか数週間放置してたメールも処理できて ちょっとうれしい。
Skypeで音が出なかった問題も、うえはらさんの情報提供で解決できたし。
午後からはアクロスで開催されている勉強会に顔を出す。 といっても、会場にいただけで、実際は明日のスライドを作ってたりして。