次の F# フラグメントは、ML 互換モードでコンパイルされた場合にのみ有効のようです (ここで実行します)。
let i = (1 lxor 5)
ただし、Visual Studio 2012 の簡単なプロジェクトで、またはコマンド ラインから fsc.exe を使用してコンパイルすることはできません。エラーが発生します:
エラー FS0039: 値またはコンストラクター 'lxor' が定義されていません
それが言うF#仕様を読む
F# は将来の使用のためにいくつかの OCaml キーワードを予約していますが、 /mlcompatibility オプションを使用すると、これらのキーワードを識別子として使用できます。
lxor
次に、そのような演算子の 1 つとしてリストします。コマンドラインfsc.exe Program.fs --mlcompatibility
(バージョン11.0.60610.1)を試しましたが、それでも同じエラーが発生します。
のドキュメントは、オプションが警告のみを無視fsc.exe
することを示しているようです。mlcompatbility
互換性を有効にするための fsc のドキュメントや VS のプロジェクト オプションには、他の関連するオプションはありませんでした。
F#/ML の互換性に関する他の SO の質問はすべて、使用できる言語構造に関連しているように見えますが、私が探しているのは、互換モードで実際にコンパイルする方法だけです。特定の名前空間を開く、別のアセンブリを参照する、または何か他のことを行う必要がありますか?
アップデート
fsharpc
また、Ubuntu 13.04 の Mono でオープン ソース コンパイラ (F# 3.0) を使用してみました。結果は と同じfsc
です。