2012-03-29 34 views
1

所以我們在Uni做這個任務,我有一個認真的渴望去完成haskell中的任務。它是一個股票交易引擎的模擬。情況是,我們有數據從csv進入,我們希望解析每條記錄,並以某種方式處理它,具體取決於分配給哪個市場階段。使用haskell的理由是,我將交易引擎視爲重要的功能系統。Haskell交易引擎

我曾經有過haskell的經驗,但只有很小的經驗,從來沒有這麼大的東西。

我們想要運行一個線程,它將csvs導入未處理的訂單隊列中,然後讓主程序訪問此隊列以處理每個訂單。但是,我怎麼能做到這一點?我知道在C#中,我只是設置了類,以便它可以訪問可容納未處理隊列的CSVParser類。這也意味着導入線程將持續貫穿所有市場階段,或者直到它完成導入csv文件。

任何有關如何實現這一目標的指導都非常棒! (不是在尋找一個完整的腳本,只需要看看haskell中的什麼東西)

回答

4

目前還不清楚你要求什麼。

  • 要啓動一個新線程,請使用Control.Concurrent中的forkIO
  • 要將數據從一個線程排到另一個線程,您可能會對Control.Concurrent.Chan中的Chan感興趣。其他Control.Concurrent。*抽象是可用的(也有stm包,如果你發現自己需要更重的任務)。
  • 對於解析CSV,請在Hackage package list中搜索「CSV」;我沒有使用Haskell解析CSV,所以我不能建議使用哪一個。
+0

你的第二點完美地回答了它。我假設陳的想法是,你可以有兩個線程共享相同的頻道?換句話說,我的未處理隊列只是成爲他們共享的渠道。 – Abstract 2012-03-29 23:54:28

+1

是的,您可以有一個(或多個)線程寫入該通道,另一個線程(或更多)從中讀取。 – dave4420 2012-03-30 00:07:16

+0

謝謝你們!是完美的。要馬上開始編碼 – Abstract 2012-03-30 00:50:10