只有我可以使用新庫時,新語言纔有意思。所以我想知道我可以在.net中使用F#來使用哪些新庫。如果F#與ML/OCaml兼容,Ocaml庫將移植到F#或可以移植。我對信號處理/語音識別,.NET中的邏輯編程/ SLD解析庫感興趣。新工具箱:原始F#模塊或從OCaml移植
回答
我不認爲有大量ML/OCaml庫已移植到F#。 F#編程風格已經與人們在ML/OCaml中使用的風格大不相同,因此ML/OCaml庫對於F#程序員來說會感覺有些陌生。
然而,有些項目在F#和OCaml中交叉編譯。 F#編譯器本身曾經是這樣的,我相信來自MSR的Slayer是(或者是?)的另一個例子。但是,對於您提到的兩個域,我並不知道任何F#庫。
如果你有興趣在F#編譯OCaml的代碼,那麼這裏有幾件事情,可以幫助你:
- 較大的語言限制時,移植OCaml的代碼到F#是F#不支持函子。
- 一些標準OCaml的庫在
FSharp.PowerPack.Compatibility.dll
組件(其可以在F# PowerPack找到)
OCAML的許多庫都是C項目的包裝器;我不確定這種範式如何適合F#/ .NET。任何見解? (我還想補充一點,關於從OCAML轉向F#的觀點; F#不包括在OCAML項目中經常使用的函子或多態變體)。 – nlucaroni 2010-11-18 17:58:31
F#包括從OCaml的某些端口,如Set
和Map
集合實現。其他混凝土數據結構可以很容易地移植,如從Chris Okasaki's excellent monograph純粹功能的數據結構。我在OCaml和F#中描述了基於他的左堆here的堆排序。我發表了對F#here中幾個純粹功能堆的更全面的評論。但是,F#似乎沒有能力表達抽象數據結構(例如,通過隊列抽象出的可鏈表),因爲它缺少Okasaki使用如此熟練的高階模塊系統。我還在OCaml和F#中發佈了一些其他翻譯,如Burrows-Wheeler transform。 OCaml有很多很棒的庫,比如ocamlgraph,但它們往往很難或不可能直接翻譯,因爲F#缺少核心語言功能,如高階模塊,多態變體,宏等。
微軟是第一個F#採用者,當然,他們將TrueSkill ranking system(用於Halo 3和Bing AdCenter)及其第三方驅動程序驗證軟件從OCaml移動到F#。
Coherent PDF用於處理PDF文檔的命令行工具是在OCaml和F#中交叉編譯的少數幾個代碼庫之一。
我們將我們的Smoke Vector Graphics發動機和我們已停產的Presenta應用從OCaml翻譯成F#,現在以F# for Visualization的價格出售。由於語言之間的相似性,翻譯當然變得更容易,但它仍然需要幾天時間才能完成,我們不可能交叉編譯。
大多數從OCaml轉換到F#的代碼是商業的,因爲F#主要是商業語言,因此OCaml的商業用戶正在遷移到F#。開源F#可能會在F#本身最近發佈的OSS之後開始啓動,但它在早期還沒有完成。關於您的特定主題(例如信號處理),我不知道除了綁定到FFTW之外還有什麼建議,我在Visual F# 2010 for Technical Computing中描述過。
我發現了一個支持進化算法開發的庫。
F#人工智能圖書館 - 差分進化的實現: http://fsai.codeplex.com/documentation?version=11
約進化算法有: http://en.wikipedia.org/wiki/Evolutionary_algorithm
也有大約一個簡短的討論「錦上添花」,SLD分辨率引擎上F#(以及一個鏈接到prolog移植到C#) http://cs.hubfs.net/forums/thread/6676.aspx
這就是所有...
- 1. OCaml /原因設計模塊
- 2. 從C++移植的功能,ocaml的
- 3. 將OCaml轉換爲F#:OCaml等效於F#規範,具體爲初始化
- 4. 將模塊從Linux移植到Android
- 5. 使用Winelib移植一個僅限Windows的GUI工具箱
- 6. 移植捲曲-F到RestSharp
- 7. 開始從哪裏開始移植?
- 8. OCaml字節碼的可移植性
- 9. Asp.Net MVC中的可移植模塊4
- 10. EF6重新腳手架初始移植
- 11. 移植到的OpenThread IAR工具集
- 12. 在Telerik Sitefinity中移植小工具
- 13. 將OCaml轉換爲F#:如何轉換OCaml格式模塊的類型
- 14. ANSI SQL可移植性HADOOP HIVE轉換工具或宏
- 15. Excel中工作表函數和VBA模塊的移植項目
- 16. OCaml:設置模塊
- 17. OCaml映射模塊
- 18. 將OCaml轉換爲F#:是否存在num模塊的端口F#
- 19. OCaml模擬模塊生成
- 20. 移植從VC6
- 21. F#原始Sql與TypeProviders
- 22. 從Linux-> Windows使用Code :: Blocks IDE工具移植
- 23. 從開發工具移植SSRS報告到生產服務器
- 24. OCAML模塊類型和模塊編譯
- 25. 新貴Systemd移植
- 26. 使用模式OCaml中或F#匹配一個變量
- 27. 從$ .ajax響應中初始化角度模塊值或工廠
- 28. 從Oracle DB移植。 MySQL或PostgreSQL?
- 29. 從Paperclip移植到Carrierwave或Refile
- 30. 通過工具箱定義的scala對象的模塊鏡像
「Calling Jon Harrop ...」:) :) – Benjol 2010-11-18 12:45:57