2010-06-24 11 views
3

我們有一個程序在幾個圖表上執行圖形分析(即最大流量問題)。 也有機會並行處理這些。我是否應該使用F#分析圖形

已經有一個很大的C#代碼庫,但我們打算重寫這個的很大一部分。在F#中做這種類型的操作會更好嗎,而不是說C#?

謝謝,皮特

回答

5

我認爲,這在很大程度上取決於你的團隊的組成 - 如何才能知道F#?

我覺得我能夠比C#更快地開發F#中的任何東西。特別是,高度算法的程序通過類型推斷在F#中表達時更加簡潔易讀。但是,如果您對F#沒有太多經驗,那麼您的學習曲線就會很明顯,這意味着如果您已經很好地熟悉了這門語言,那麼您最好堅持使用C#。如果你的任務不需要訪問任何共享的可變狀態(這似乎是你的任務的情況),C#對並行操作的支持大致相當於F#,特別是如果你的任務不需要訪問任何共享的可變狀態,特別是如果你的任務不需要訪問任何共享可變狀態。如果我正確理解你的問題,你只是想同時在多個圖上運行相同的操作,這在兩種語言中都應該很容易。如果您試圖並行化最大流算法本身,那麼由於其對不可變數據類型的更強支持,F#可能會更容易一些。 F#確實擊敗了C#在進行異步操作,但這似乎不太相關。

+0

F#的經驗 - 沒有。所以我認爲你是對的。 我們還確定了一個名爲QuickGraph的庫來處理圖表上的所有操作,甚至包括一個自動計算最大流量的算法。 所以看起來我們會一起去。乾杯。 – 2010-07-23 10:36:48

1

在F#中做這種類型的操作,而不是說C#會更好嗎?

是的,這正是F#理想的問題。

F#.NET期刊文章* The A******* algorithm *(2010年4月15日)描述了與您的問題類似的路徑查找解決方案的設計和實現。如果您找不到已經使用F#解決的問題,您可能想研究一些現有的用OCaml編寫的圖形理論程序。

您可能會發現使用不可變數據結構更容易。例如,將圖形表示爲從源節點到其邊緣導致的目標節點集合的映射。

+1

注意:引用鏈接位於付費牆後面。 – 2012-01-03 18:14:52

相關問題