6

F#powerpackを使用してインストールする必要があります。Macではモノラルバージョン2.10.2を使用しています。

mono --version
Mono JIT compiler version 2.10.2 (tarball Mon Apr 18 09:14:01 MDT 2011)
Copyright (C) 2002-2011 Novell, Inc and Contributors. www.mono-project.com
        TLS:           normal
        SIGSEGV:       normal
        Notification:  kqueue
        Architecture:  x86
        Disabled:      none
        Misc:          debugger softdebug 
        LLVM:          yes(2.9svn-mono)
        GC:            Included Boehm (with typed GC)

インストール。

  1. ここからpowerpackzipファイルをダウンロードします。

  2. ファイルをディレクトリに解凍します~/bin

  3. ~/bin/FSharpPowerPack-1.9.9.9/binをPATHに追加します。念のため、MONO_PATHにも追加します。(これが必要かどうかはわかりません)
  4. のdllには~/bin/FSharpPowerPack-1.9.9.9/bin/gac、次のコマンドを使用しますsudo gacutil -i <ALL_THE_FILES_IN_DLL>.dll

パワーパックの使用

このページのサンプルコードでテストしました。linq.fsという名前を付けます

open Microsoft.FSharp.Linq
let adderExpr = <@ fun i -> i + 1 @>.ToLinqExpression()
let adder = <@ fun i -> i + 1 @>.Compile()

質問

  1. でエラーが発生しましfsc linq.fs /r:FSharp.PowerPack.Linq.dllた。何が悪いのでしょうか?

    /Users/smcho/Desktop/fs/powerpack/linq.fs(1,38):エラーFS0039:フィールド、コンストラクター、またはメンバー'ToLinqExpression'が定義されていません

    /Users/smcho/Desktop/fs/powerpack/linq.fs(2,34):エラーFS0039:フィールド、コンストラクター、またはメンバーの「コンパイル」が定義されていません

  2. すべてのdllをインストールする必要がありgacutil -iますか?または、dllパスをPATH / MONO_PATH環境変数に追加するだけで十分ですか?

4

1 に答える 1

4

インストール手順は正しいようです(解凍してを使用してインストールするだけgacutil -iです)。サンプルには小さな問題があると思います。ToLinqExpression拡張メソッドは、明示的に開く必要のあるモジュールで使用できるため、ファイルは次のようになります。

編集正しいモジュール名は実際にはMicrosoft.FSharp.Linq.QuotationEvaluation

open Microsoft.FSharp.Linq.QuotationEvaluation

let adderExpr = <@ fun i -> i + 1 @>.ToLinqExpression()
let adder = <@ fun i -> i + 1 @>.Compile()
于 2011-06-01T19:53:06.050 に答える