Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 新工具集:原始F#模块或从OCaml移植_.net_F#_Prolog_Ocaml_Signal Processing - Fatal编程技术网

.net 新工具集:原始F#模块或从OCaml移植

.net 新工具集:原始F#模块或从OCaml移植,.net,f#,prolog,ocaml,signal-processing,.net,F#,Prolog,Ocaml,Signal Processing,只有当我能使用新的库时,新的语言才有趣。所以我想知道我可以在.net和F#中使用哪些新库。如果F#与ML/OCaml兼容,那么哪些OCaml库被移植到F#或可以被移植。我对.NET中的信号处理/语音识别、逻辑编程/SLD分辨率库很感兴趣 我认为已经移植到F#的ML/OCaml库并不多。F#编程风格已经与人们在ML/OCaml中使用的风格大不相同,因此对于F#程序员来说,ML/OCaml库可能会有点陌生 然而,有些项目在F#和OCaml中交叉编译。编译器本身曾经是这样的,我相信从MSR中是(或者曾

只有当我能使用新的库时,新的语言才有趣。所以我想知道我可以在.net和F#中使用哪些新库。如果F#与ML/OCaml兼容,那么哪些OCaml库被移植到F#或可以被移植。我对.NET中的信号处理/语音识别、逻辑编程/SLD分辨率库很感兴趣

我认为已经移植到F#的ML/OCaml库并不多。F#编程风格已经与人们在ML/OCaml中使用的风格大不相同,因此对于F#程序员来说,ML/OCaml库可能会有点陌生

然而,有些项目在F#和OCaml中交叉编译。编译器本身曾经是这样的,我相信从MSR中是(或者曾经?)的另一个例子。然而,对于你提到的两个领域,我不知道有任何F#库

如果您对在F#中编译OCaml代码感兴趣,那么以下几点可能会对您有所帮助:

  • 将OCaml代码移植到F#时,更大的语言限制是F#不支持函子
  • 一些标准OCaml库在
    FSharp.PowerPack.Compatibility.dll
    程序集中实现(可在中找到)
F#包括来自OCaml的一些端口,如
集合
映射
集合。其他具体的数据结构可以很容易地移植,例如来自的纯功能数据结构。我在OCaml和F#中描述了一个基于他的左派堆的堆排序。我发表了一篇关于F#中几个纯函数堆的更透彻的评论。然而,F#似乎不能很好地表达抽象数据结构(例如,通过队列抽象的可分类列表),因为它缺乏冈崎如此熟练地使用的高阶模块系统。我也在OCaml和F#中发布了一些类似的其他翻译。 OCaml有很多很棒的库,比如,但是它们通常很难或不可能直接翻译,因为F#缺乏核心语言特性,比如高阶模块、多态变体、宏等等

当然,微软是第一个F#采用者,将其(用于Halo 3和Bing广告中心)和第三方驱动程序验证软件从OCaml迁移到F#

用于处理PDF文档的命令行工具是在OCaml和F#中交叉编译的少数代码库之一

我们将我们的引擎和(已停止使用的)Presenta应用程序从OCaml转换为F#,现在作为销售。由于两种语言之间的相似性,翻译当然变得更容易了,但仍然需要几天的时间,我们不可能进行交叉编译

从OCaml到F#的大部分代码都是商业化的,因为F#主要是一种商业语言,因此,OCaml的商业用户正在迁移到F#。随着F#本身作为OSS的最新发布,开源F#可能会开始起飞,但现在还为时过早


至于您的特定主题(例如信号处理),除了绑定到FFTW(我在中介绍过)之外,我不确定应该推荐什么。

我找到了一个支持进化算法开发的库

F#人工智能库-差异进化的实现:

关于进化算法:

还有一个简短的讨论是关于F#上的“很好用”SLD分辨率引擎(还有一个到prolog的链接被移植到C#上)


就这些

许多OCAML库都是C项目的包装器;我不确定这种模式如何与F#/.NET相适应。有什么见解吗?(我还想补充一下关于F#从OCAML转移的观点;F#不包括函子或多态变体,它们在OCAML项目中经常使用)。