我白天是一名.NET开发人员,但现在我在业余时间和Haskell玩了一段时间.我很好奇:任何Haskell .net实现与IronPython一样吗?
Don*_*art 29
将GHC运行时移植到.NET没有积极的工作.
F#是最接近的东西,但要注意它是基于OCaml的,因此,默认情况下,并不像Haskell那样基于参照透明度.
Con*_*ngo 16
请参阅hs-dotnet:Haskell的Pragmatic .NET interop
hs-dotnet是Haskell的一个实用的.NET互操作层.它将.NET类暴露给Haskell(通过GHC),将Haskell函数值暴露给.NET.
如果没有对运行时进行一些重大更改或者可能是一个非常聪明的编译器,Haskell就不会在.NET上很好地工作.
当代码契约渗透得更多时,事情会发生变化,但是现在,即使是行为纯粹的函数,比如字符串操作函数,也必须通过IO访问 - 所以它根本就不值得.
那,并且存在优化问题 - 例如,.NET不对不可变对象进行任何优化,因此列表(在F#中调用它们的序列,或者在C#中调用它们的IEnumerable)将不会效率很高.
Haskell IL编译器可能是可行的,就像吐出.NET程序集而不是x86 .exes/.dll的东西一样.