0

私はUbuntu正確でモノを使用しており、ここにある指示に従ってF#をインストールしました。また、emacs に fsharp モードをインストールしたので、簡単な F# プログラムをテストおよびコンパイルできます ( emacs F# モード REPLと、mono で実行する実行可能ファイルの生成の両方)。

ただし、ステートメント:

open System.Xml.Linq

emacs F# モード REPLと、bash シェルからfsharpcを呼び出すときに、同じエラーで失敗します。

error FS0039: The namespace 'Linq' is not defined

SO で C# の同様の投稿を見つけましたが、「-r: System.Xml.Linq」を使用するようにというアドバイスはシェルからのコンパイルでも機能します。

fsharpc -r:System.Xml.Linq.dll parseemails.fs 

... Linq 名前空間を emacs F# モード REPL で使用できるようにする方法がまだわからないので、Cc Ce 評価で使用できます。

4

1 に答える 1

3

Johnがコメントで述べたように、F#インタラクティブ(emacsモードで実行されているREPL)でアセンブリを参照する場合は、次を使用して行うことができます。

#r "System.Xml.Linq.dll"

コードをコンパイルする場合、このコマンドは無効であり、コマンドライン引数を追加する必要があります-r:System.Xml.Linq.dll。両方を組み合わせる(インタラクティブに実行して同じコードをコンパイルする)場合は、条件付きコンパイルを使用できます。

#if INTERACTIVE
#r "System.Xml.Linq.dll"
#endif

シンボルINTERACTIVEはREPLモードで自動的に定義されるため、これらの3行を選択して実行すると、アセンブリを参照する必要があります(ただし、コンパイル時にコードが破損することはありません)。

于 2012-08-20T01:49:14.560 に答える