Допустим, у меня есть следующая функция.
let rec fib n =
match n with
| 1 | 2 -> 1
| n -> fib(n-1) + fib(n-2)
Как мне скомпилировать этот код в dll, чтобы он использовался из C #?
Я использую как моно (в Mac OS X), так и Visual Studio 2010.
ДОБАВЛЕНО
Я добавил следующее, чтобы создать пространство имен.
namespace MyMath.Core
module public Process=
И fsc --target: библиотека facto.fs выдает мне facto.dll.
Код C # для использования этого кода следующим образом.
using System;
using MyMath.Core;
class TestFSharp {
public static void Main() {
int val = MyMath.Core.Process.fib(10);
Console.WriteLine(val);
}
}
dmcs /r:facto.dll testf.cs дает мне tesetf.exe.