如何使用C#(DLLImport)中的高阶类型签名来使用和调用Haskell函数,如...
double :: (Int -> Int) -> Int -> Int -- higher order function
typeClassFunc :: ... -> Maybe Int -- type classes
data MyData = Foo | Bar -- user data type
dataFunc :: ... -> MyData
Run Code Online (Sandbox Code Playgroud)
C#中相应的类型签名是什么?
[DllImport ("libHSDLLTest")]
private static extern ??? foo( ??? );
Run Code Online (Sandbox Code Playgroud)
另外(因为它可能更容易):我如何在C#中使用"未知"Haskell类型,所以我至少可以传递它们,而不知道任何特定类型的C#?我需要知道的最重要的功能是传递类型类(如Monad或Arrow).
我已经知道如何将Haskell库编译为DLL并在C#中使用,但仅适用于一阶函数.我也知道Stackoverflow - 在.NET中调用Haskell函数,为什么GHC不能用于.NET和hs-dotnet,我没有找到任何文档和样本(用于C#到Haskell的方向).