2008-08-01から1ヶ月間の記事一覧

Ruby のコマンドラインオプションを復習しました!

ダオカオス☆技術局こういうのはワンライナーで十分だよね。と思いつつも、Perl の時は多少なりともワンライナーで書いていたのに Ruby では全然書いてなくて、それでもってオプション指定しようとして戸惑いました。これはマズい!と思ったので、慌てて復習…

無音の『シーン』は「マンガ表現」?

以下の記事を読みました。http://sankei.jp.msn.com/life/education/080826/edc0808260809004-n1.htm「無自覚の刷り込み」って煽り過ぎではないでしょうか。という事はまず置いておくとして、次の部分はとても気になりました。 吉村さんは「何も音がしない状…

Selfish で BankAccount

Selfish で BankAccount を書いてみました。BankAccountただしまた setter の記法を変更してしまいました。というのも、BankAccount を書いていて「これはマズい!」と思ったからです。どこがマズいのかというと、まず getter と setter の区別が表面的につ…

ブロックの self を差し替えたい、という話

Selfish では Self を真似るため(本当の目的は delegation を行なうため)にメソッドをオブジェクトとして持つ必要があります。Self のメソッドオブジェクトはコードにおける暗黙の self の差し替えが可能です。でもなぜそうした目的のためにわざわざ Selfi…

Selfish にメソッドオブジェクトを追加しました

Selfish のスロットの値割り当て方法を変更 - ¬¬日常日記昨日は id:miura1729 さんのおかげで Selfish がぐっと Self っぽくなったので、これに刺激を受けてさらにメソッドオブジェクトをきちんと実装してみました。そんなわけでメソッドの書き方も変更にな…

Selfish のスロットの値割り当て方法を変更

「 Selfish: Ruby で Self 的プロトタイプベース!」の変更案 - miura1729の日記id:miura1729 さんの変更案がとっても素敵なので、こちらを採用させて頂くことにしました。誠にありがとうございました!そうですよね、代入の"="なんて邪悪!この変更のおかげ…

局所変数無き荒野を生きる

古の超最先端言語である Self の際立つ特徴は二つにまとめられます。 プロトタイプベース 局所変数がない Self はしばしばプロトタイプベースのオブジェクト指向計算機言語の代表格に挙げられますが、そのもう一つの重要な側面である局所変数がないという特…

要素代入演算子式に関する落とし穴

Ruby の要素代入演算子(演算子でいいのかな?)は定義が可能です。 class A def x=(a) return 1 end end 上の定義は A.new.x = y の形で y の値にかかわらず常に 1 を返すように意図したつもりですが、実際には上手くいきません。 A.new.x = 5 #=> 5 A.new.x …

Selfish: Ruby で Self 的プロトタイプベース!

Ruby に Self 的なプロトタイプベースオブジェクト環境を導入する Selfish というものを作りました。http://github.com/keita/selfish/tree/masterこれは、Self に興味があるけど試せない人のために、Ruby でそれっぽい感じに Self の雰囲気を再現しようとい…

脆弱性って何かを知りませんでした!

以前セーフレベル4関係で送ったパッチが脆弱性ということで報告されててまぁびっくり。Rubyに複数の脆弱性なぜびっくりかと言うと、私はこれらを脆弱性だと認識していなかったからです(特に untrace_var のは)。「セキュリティーホール」とかの言葉とごっ…

とっても優しい Self の書き方

実際に書かないと分からないので色々やってみました。統語規則は大体のところ Smalltalk っぽいので(多分統語だけじゃなくって world のあり方とかその他の大部分も相当似てるような感じです、なんというかプロトタイプベース版 Smalltalk みたいな?)、先…

__proto__ で循環継承

Javascript 実装の一部には __proto__ というのがあるのですね。http://developer.mozilla.org/en/docs/Differential_inheritance_in_JavaScriptこれはまさに delegation における parent です。で、なんでこれが非標準なのでしょうか。プロトタイプベース言…

Self 処理系を色々試してみました

http://research.sun.com/self/Self やるぞー!と鼻息をぷんぷんさせていたところ、純正 Self はとってもプラットフォームを選ぶことが判明しました。動くのは、 MacOSX Solaris(SPARC が載ってるのだけ?ソースからコンパイルすれば大丈夫なのかな) のみと…

delegation って何?

DelegateClass の謎 - ¬¬日常日記さて、このように Ruby の DelegateClass は良く分からない事でいっぱいです。しかし そもそも「delegation って何?」ということを理解していないと、MLで聞くことも出来ませんので delegation について調べてみることにし…

DelegateClass の謎

DelegateClass に起因するスペックテスト問題 - ¬¬日常日記というわけで、さて本論の DelegateClass の謎について書いてみたいと思います。まず前提として、私は delegation というものが何か今はまだよく分かっていません。だから、謎は謎のままです。今後…