.net 新工具集:原始F#模块或从OCaml移植
只有当我能使用新的库时,新的语言才有趣。所以我想知道我可以在.net和F#中使用哪些新库。如果F#与ML/OCaml兼容,那么哪些OCaml库被移植到F#或可以被移植。我对.NET中的信号处理/语音识别、逻辑编程/SLD分辨率库很感兴趣 我认为已经移植到F#的ML/OCaml库并不多。F#编程风格已经与人们在ML/OCaml中使用的风格大不相同,因此对于F#程序员来说,ML/OCaml库可能会有点陌生 然而,有些项目在F#和OCaml中交叉编译。编译器本身曾经是这样的,我相信从MSR中是(或者曾经?)的另一个例子。然而,对于你提到的两个领域,我不知道有任何F#库 如果您对在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中是(或者曾
- 将OCaml代码移植到F#时,更大的语言限制是F#不支持函子
- 一些标准OCaml库在
程序集中实现(可在中找到)FSharp.PowerPack.Compatibility.dll
集合
和映射
集合。其他具体的数据结构可以很容易地移植,例如来自的纯功能数据结构。我在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项目中经常使用)。