2011-10-07 53 views
0

我沒有找到組織各種算法的好方法。今天該文件是這樣的:F# - 文件中算法的組織

1從Excel

值/提取

2 /第一基於這些值(從Excel中提取)開始 算法 「讓matriceAlgo1 =」

3 /二算法從相同的值開始 「let matriceAlgo2 =」

4 /合成算法,對2 /和3 /進行加權平均(取決於幾個值)並選擇要顯示的結果。 「let matriceSynthesis =」

我的問題是以下內容:我應該在該文件的不同部分之前放置什麼以便通過名稱調用它們?我已經看到答案解釋Module可能是一個答案,但我不知道如何將它應用於我的案例(或其他任何其他情況,如果這不是一個好答案)。最後,我希望能夠寫出類似於這樣的:

「啓動提取

推出第一算法

推出第二種算法

啓動合成」

回答

1

我平時組織文件的方式是有不同來源之間存在一些清晰的視覺分離器(例如參見Crawler.fsx on GitHub),然後在調用前面聲明的函數的末尾有一個「main」部分。

我真的不使用模塊,除非我有大量的功能衝突名稱。如果您的算法包含更多功能(例如Alg1.initialize,Alg1.run等),則最好使用模塊。然後,你可以很容易地通過使用別名模塊的不同算法之間切換:

module Alg = Alg1 // or Alg2 

let a = Alg.initialize 
Alg.run a 

如果文件被越拉越長,那麼你也可以移動的部分分離文件,並使用#load "File.fs"從文件加載算法或功能。在這種情況下,您可能需要使用模塊,但加載文件後,您始終可以使用模塊open

+0

感謝您的信息和示例 – katter75