2009-07-17 7 views
5

Booはとてもクールな言語のようです。それは100%C#互換ですか?つまり、C#DLL /クラスを使用できますか?私はXNAフレームワークを利用できますか?Booは100%C#互換ですか?

+0

.NET上で実行される場合は、そうでなければなりません。 –

+0

うん、私はFNAで働いているXNAの役に立つ実装があると思う。 – RCIX

答えて

6

私が知る限り、Booは.NET CLRの上に実装されています。つまり、C#コードを消費し、消費することができるはずです。構文は、C#からBooを使用するときれいになるとは限りませんが、Booの構文では、その逆は非常にエレガントでなければなりません。

また、.NET BCLのすべてのクラスをBooで使用できるようにする必要があります。

+0

私が正しく覚えていれば、BooはC#でプログラミングされていませんでしたか? – Isaiah

1

これは、C#でVB.NETを使用することと変わりありません。現在、2つの(機能的に)唯一の大きな違いは、Booにはポインタがないことです...しかし、それを処理する方法があります。

PS:Booは素晴らしい言語です。

1

IIRCでは、IL(中級言語、Javaのバイトコードの.NETバージョン)でコンパイルされる言語は、同じことをする他の言語でも動作します。したがって、C#、F#、ASP.NET、VB.NETを混在させることができます。もしBooが同じことをしたら、C#と一緒に使うことができるはずです。

+2

正確ではありません。特定の言語で他の言語では使用できない構造を作成することは可能です。例:http://codebetter.com/blogs/matthew.podwysocki/archive/2008/09/10/object-oriented-f-extension-everything.aspx –

2

はいBooはC#で簡単に消費され、その逆もあります。 Booの優れた機能のほとんどは、明白な理由から構文的なマクロなどC#に継承されませんが、C#でマクロを作成し、Booでそれらを使用することができます。さらに、Booはモジュールを作成できるという素晴らしい機能を持っています。これはC#ではできないことです。

これらはどちらも拡張メソッドを作成できます。 Booには「ダック」の入力があり、C#には「動的な」キーワードがあります。両者は機能的には同等ですが、最終的には2つのマージを最終的に見ることになります。

ブーは現在、ジェネリックに関する既知の問題を持っていますが、機能が完全にサポートされるようになりました。私は、.NET 4の新しいCo/Contra-variance機能をサポートするためにいくつかの追加作業が必要になると考えています。

関連する問題