langsmith:251
From: Yukihiro Matsumoto <matz ruby-lang.org>
Date: Fri, 08 Jul 2005 02:58:55 +0900
Subject: [langsmith:251] Re: 自作言語citronv0.0.06(Was:Re: 自作言語citronv0.0.05)
まつもと ゆきひろです In message "Re: [langsmith:250] Re: 自作言語citronv0.0.06(Was:Re: 自作言語citronv0.0.05)" |> おもしろいです。でもどうやって実装するんだろう。 | | それはこれから考えます:D | ひとまず, メソッドの重なりは | 0. + クラスのupgrade | 1. + 基底クラス | 2. + 基底クラスのupgrade | 3. + 派生クラス | 4. + 派生クラスのupgrade | 5. + あるクラスから派生の一番最後の位置でupgradeしたいとかあるかな? | 6. + インスタンスでのupgrade | の順になるかと思います. | クラス/インスタンス毎にそれぞれのupgradeを保持しておいて, | それぞれのメソッドの中でさらにメソッド呼び出しが発生するという | 感じでしょうか. | 継承ツリーの探索が二重になっているといったかんじ. なるほど。でもupgradeの結果がすぐに予想できない気がします。 それは私が慣れていないからかな。 |> 必要ないんじゃないですか。予約語の接頭辞とかリテラル記述の直 |> 前とか「@」がなくてもいいような気がします。「@main」はわから |> ないでもないですが。 | | 接頭辞を付けた理由としては, 1つは識別子に使おうとした単語が | 予約語だと悲しかったりするので. | また, 新規にいろいろ書いてるので, これは予約語状態, これからちょっと | 特殊なことが起きます, というのをわかりやすくするためという点もあります. | でも返って悩ませているでしょうか? うーん、まあ、趣味的なところが大きいですからねえ。私の趣味で はないと。余計なお世話ですが。 |> 他ではC言語風の型指定なのにここだけpascal風味なんですね。 | | メソッドのこれは見た目ややこし気味なのでちょこっとはスリムな | クロージャで. | > c = @closure(string s):Object{ s.writeln(); }; | クロージャだとこんなかたち. | C風に書くとこんなかんじ? | > c = Object @closure(string s){ ...; }; | | 頭から逐次解釈的に考える方が考えやすかったからでしょうか. | ざ〜っと眺めていったときに, 微妙に思考がバックトラックするのが | 好きじゃないので. それは分かるんですが、なら他の場所でも戻り値の型指定をPascal 風味にするのが自然でないかなと思ったんですが。 -- ML: langsmith quickml.atdot.net 使い方: http://www.atdot.net/~ko1/quickml
245 2005-07-03 23:33 [hio hio.jp ] 自作言語citron v0.0.05 246 2005-07-04 10:58 ┗[matz ruby-lang.org ] 247 2005-07-05 00:27 ┗[hio hio.jp ] 自作言語citronv0.0.06(Was: Re: 自作言語citronv0.0.05) 249 2005-07-06 19:10 ┗[matz ruby-lang.org ] 250 2005-07-06 23:13 ┗[hio hio.jp ] -> 251 2005-07-08 02:58 ┗[matz ruby-lang.org ] 252 2005-07-09 19:00 ┗[hio hio.jp ]