Thursday, May 19, 2016

唐 賽姆 - s上 f# 和 相關主題 網絡日誌






+

F#的能源交易和能源投資組合優化 我們得到很多的F#已經在不同的應用領域得到了很大非正式的反饋。 我最喜歡的分析了“為什麼是F#非常適合我的工作”出版了西蒙·考辛斯,最初的計算器。 西蒙給了我們允許再版了他寫到這裡。 我覺得他說的是真的很有趣,因為它映射F#的不同技術特點(我喜歡談論),以實際的強勁提高生產力的發電調度非常現實世界的應用領域的一個主要的能源公司,在這 情況下,在英國。 我希望你喜歡什麼西蒙撰寫並發現它解釋給別人有用的,為什麼函數式編程導致生產率和軟件可靠性有形的現實世界的改進。 使用F#的能源交易和能源投資組合優化,由西蒙·考辛斯 我寫一個應用程序來平衡電站的投資組合全國發電計劃為能源公司的交易頭寸。 客戶端和服務器組件在C#但計算引擎寫於F#。 使用F#,解決複雜性在這個應用程序的心臟清楚地表明了一個甜蜜點,為企業軟件,即算法複雜的大型數據集分析中的語言。 我的經驗是非常積極的。 尤其是: 測量單位。 我在這個行業中充斥著的單位。 我實現了(通常是一個幾何性質)的公式處理的時間,電力和能源單位。 具有類型系統驗證的函數的輸入和輸出單元的正確性是節省大量時間,無論是在測試和讀/理解代碼方面。 它根除了一整類的錯誤,以前的系統是容易。 探索編程。 與腳本文件和REPL(F#互動)工作讓我可以承諾比傳統的編輯在實施之前更有效地探索解空間/編譯/運行/測試循環。 這是一個程序員來構建這個問題而設計的緊張局勢中發揮的理解非常自然的方式。 單元測試。 使用非端實現的功能和不可改變的數據結構編寫的代碼是一個歡樂的測試。 沒有複雜的時間依賴的互動,搞砸或大型成套依賴被嘲笑。 互操作。 我定義的接口在C#中的計算引擎,並實現了計算在F#中。 計算引擎然後可以注入到需要使用它沒有任何在所有關於互操作性問題的任何C#的模塊。 無縫。 C#的程序員永遠不需要知道。 代碼下降。 多送入計算引擎中的數據是在向量和矩陣的形式。 高階函數吃這些早餐以最小的大驚小怪,最少的代碼。 美麗。 缺少錯誤。 函數式編程可以感到陌生。 我可以工作的一個算法,力圖獲取代碼通過類型檢查,但一旦類型檢查是滿意的,這就是它,它的工作原理。 它幾乎是二進制的,要么不會編譯或它的正確。 奇怪的邊緣情況的錯誤最小化,遞歸和高階函數刪除了大量的簿記代碼,引入邊緣情況的錯誤。 並行性。 所產生的實現的功能純度使其成為成熟開發的數據處理向量的固有的並行性。



No comments:

Post a Comment