2011-02-01から1ヶ月間の記事一覧

メソッドの話

Perl6 になって,メソッドがよくわからんくなった. あとメタプログラミングRuby を読んで,どこにメソッドが差してあるかが 気になってきた今日このごろ.少し調べてみることにする. class C11 { method f {say "C11"} } class C12 { method f {say "C12"}…

メタプログラミングRuby 四日目を読んだ

特異クラス クラスインスタンス変数,クラスマクロ,アラウンドエイリアス で, 特異クラスは たぶん Role を差してやればいいと思う alias は,なんかいい方法があるんだろうか.next とか? my &old_name := &thermo; &thermo = sub {}; とか普通にできる…

メタプログラミングRuby 三日目を読んだ

Proc と lambda と instance_eval かな scope の話 さて block は全てがクロージャです. method { } で,無名メソッドが作れる 第一引数がオブジェクト($obj.$method と $method($obj) が同じ) -> でも,引数を受け取るクロージャが作れる AUTOLOAD が使え…

メタプログラミングRuby 五日目を読んだ

クラス拡張ミックスイン で Perl6 だと 普通にRole かなぁ? attr_checked メソッドを生やす add_method で適当にアクセサを作る store する場所はぶっちゃけ,独立したattribute じゃなくてもいいよね. メタプログラミングRubyposted with amazlet at 11.0…

メタプログラミングRuby 二日目を読んだ

Module#method_missing() と define_method(), Object#send() あたり.AUTOLOAD(=CANDO) と 動的定義か. multi CANDO (MyPackage, $type, $name, *%args --> Container) { ... } my $name = '&' . 'aaa'; ::<$name> = method { ... } みたく,CANDO とか動…

メタプログラミングRuby 一日目を読んだ

まとめを抜粋 オブジェクトは複数のインスタンス変数とクラスへのリンクで構成されている. オブジェクトのメソッドはオブジェクトのクラスに住んでいる(クラスから見れば,それはインスタンスメソッドと呼ばれる) クラスはClass クラスのオブジェクトである…