池田優一
eclip****@cspc*****
2005年 11月 15日 (火) 01:00:49 JST
池田です。 ちょいと危険な香りのする考えが頭に上ってきてしまいました。 逆方向抽出を作るのはなんかいまいちだなーというのと、 インデクサと抽出って似てるのに一方はメソッド、 一方は構文というのが美しくない。ので、 抽出をメタ結合+評価に還元できないだろうか。 そうすれば逆方向メタ結合はあるので自動的に逆方向の抽出が可能になります。 しっかりとは考えてないのですが、 ・シンボルの評価部に抽出処理が入る ・シンボルの内部名をユニークにする とすると、 symbol object は以下のようになります。 {@symbol_uniq || 抽出処理} [@obj| ... |...]; 内部名が異なる場合、メタ結合後の内部名と評価部は右側のものになります。 なのでシンボルに抽出対象オブジェクトの要素だけが追加されたものが 生成されます。 そしてそのオブジェクトを評価すると抽出が行われるという仕組みです。 評価部の抽出処理はmieの範囲内で表現することはできないかもしれませんが、 別にブラックボックスでもかまわないかと思います。 で、この案symbolとobjectが今までと逆になります。 今まで object .x; と書いていたものが、 .x object; となってしましますw とまぁいろいろと難しそうですが、 ネタとしては中々面白いのではないかなと。 池田優一 wrote: > 池田です。 > > これ書いてて気付いたんだけど、 > :は演算子にできても~はできない・・・ > 対称にすると:も構文になっちゃうのかなぁ。 > > : = {x | @owner <+ [x]}; > > [] : 1 --> [].:[1] --> {x | [] <+ [x]}[1] --> []<+[1] > > と思ったけど抽出の逆方向版があればいいのか。 > 最後に.を付けると逆抽出用シンボルリテラルだとして。 > > ~ = {x | [x] +> @owner}; > > 1 ~ [] --> [1]~.[] --> [1]+>{x | x +> []}! --> [1]+>[] > > とかどうだろw > > > 池田優一 wrote: > >>池田です。 >> >>右結合な構文とか演算子とかあるでしょうか。 >> >>とりあえず、 >>+>, ~ は右結合の方が良いかと思いました。 >><+, : の反対感が強まるので。 >> >>演算子は優先度の他に結合則も必要ですね。 >>OCamlでも演算子の開始文字によって結合則が変わるそうです。 >>_______________________________________________ >>mie-dev mailing list >>mie-d****@lists***** >>http://lists.sourceforge.jp/mailman/listinfo/mie-dev >> > > > _______________________________________________ > mie-dev mailing list > mie-d****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/mie-dev > >