質問

軽量なメタプログラミングの一部をNemerleからBooに移行し、カスタム演算子の定義方法を見つけようとしています。たとえば、Nemerleでは次のことができます。

macro @<-(func, v) {
    <[ $func($v) ]>
}

この2つは同等です:

foo <- 5;
foo(5);

Booでこれを行う方法が見つかりません-アイデアはありますか?

役に立ちましたか?

解決

Booは、適切な静的演算子関数( op_addition )を定義することで演算子のオーバーロードをサポートし、構文マクロもサポートしていますが、現時点ではカスタム演算子の作成はサポートしていません。

他のヒント

これが必要なものかどうかはわかりませんが、Booで構文マクロを作成できます。 CodeHausサイトにはいくつかの情報があります。 http://boo.codehaus.org/Syntactic+Macrosが、最近のリリースの1つで構文が変更されました。新しい構文に関するチュートリアルは知りませんが、Boo 0.8.2のソースリリースにはいくつかの例があります(言語構造の一部はマクロとして実装されています)。完全なソースをダウンロードしたくない場合は、SVNリポジトリのビューを利用できます。 https://svn.codehaus.org/boo/boo/trunk/src/Boo.Lang.Extensions/Macros/ 。 assertマクロは、開始するのに適した場所です。

HTH

ストー

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top