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. 从这里下载 powerpack zip 文件。

  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. 我需要安装所有的 dllgacutil -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 回答