27 Stimmen

Verwendung von Haskell-Typen höherer Ordnung in C#

Wie kann ich Haskell-Funktionen mit Typsignaturen höherer Ordnung aus C# (DLLImport) verwenden und aufrufen, wie...

double :: (Int -> Int) -> Int -> Int -- higher order function

typeClassFunc :: ... -> Maybe Int    -- type classes

data MyData = Foo | Bar              -- user data type
dataFunc :: ... -> MyData

Was sind die entsprechenden Typsignaturen in C#?

[DllImport ("libHSDLLTest")]
private static extern ??? foo( ??? );

Zusätzlich (weil es vielleicht einfacher ist): Wie kann ich "unbekannte" Haskell-Typen in C# verwenden, so dass ich sie zumindest weitergeben kann, ohne dass C# einen bestimmten Typ kennt? Die wichtigste Funktionalität, die ich richtig wissen muss, ist eine Typklasse (wie Monad oder Arrow) zu übergeben.

Ich weiß bereits wie man eine Haskell-Bibliothek zu einer DLL kompiliert und in C# verwenden, allerdings nur für Funktionen erster Ordnung. Ich bin mir auch bewusst, dass Stackoverflow - Aufrufen einer Haskell-Funktion in .NET , Warum ist GHC nicht für .NET verfügbar? y hs-dotnet , wo ich KEINE Dokumentation und Beispiele (für die Richtung C# zu Haskell) gefunden habe.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X