Как установить и использовать F# Powerpack в Mono?
Мне нужно установить использовать F# PowerPack. Я использую моно версию 2.10.2 на Mac.
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)
Монтаж.
Загрузите zip-файл powerpack отсюда.
Разархивируйте файл в каталог
~/bin
,- Добавить
~/bin/FSharpPowerPack-1.9.9.9/bin
в ПУТЬ. Я также добавляю его в MONO_PATH на всякий случай. (Я не уверен, нужно ли это или нет) - Для 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()
Вопросы
Я получил ошибки с
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: поле, конструктор или член 'Compile' не определены
Нужно ли устанавливать все dll с
gacutil -i
? Или просто добавить путь к DLL в переменную окружения PATH/MONO_PATH достаточно?
1 ответ
Ваша процедура установки кажется правильной (просто распакуйте и установите, используя 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()