私はF#を学んでおり、TopCoder大会に出席したいと思っているのです。しかし、F#はそこでサポートされている言語のリストの中にありません。しかしC#はリストに載っています(正直なところ、これはGoogle Code JamとFacebook Hacker cupを除くほとんどすべてのオンラインコーディングコンテストのケースです)。私はこの瞬間を考えることができますF#コードをC#コードに変換することはできますか?
の回避策が 1)のC#に直接F#のソースコードを変換することができます翻訳者を見つけることです 2)にF#コードをコンパイル.NET最初の実行可能にして、再びC#コード
にそれを分解最低限必要なのは、生成されたC#を実行可能な.net実行可能ファイルにコンパイルできなければならず、可能な限り外部依存性が少ないことが望ましいということです。
最初のアプローチはありそうもないようですが、すばらしいGoogle検索では関連性がないことが判明しました。 アプローチ2はより有望に見えます。ネットディスアセンブラが存在します。
私は最も人気のあるもの---レッドゲートからのリフレクターを試しました。それはC#の実行ファイルを完全に隠すことができますが、F#からコンパイルされた実行ファイルには問題があるようです。それはうまく逆アセンブルされますが、その結果のC#コードにはクラス名やその他の奇妙なものに先頭の$記号を付けるなど、コンパイルできません。私は最新のReflectorベータ版(無料)のVisual Studio 2010 Professionalを使用していました。
ここに何か不足していますか?出来ますか?
更新: これはまだ不可能なようです。今のところ、代わりにC#を使用します。
たとえ可能であったとしても、出力ソースは適切に見えるでしょう...あまり良くありません。それが慣用的であるかどうかは言うまでもない。人間が判読可能な結果でL1からL2への自動変換は非常に困難です。 – delnan
正直なところ、コードの可読性は私の関心事ではありません。 C/C++でTopCodersのコードを見ると、ほとんどはi、j、kのようなインデックスを持つ配列を使って行われます。 – Cygwin98
TopCoderは21世紀に参加する必要があります。 –