我寫了一個程序來計算語料庫中NGrams的頻率。我已經有消耗記號流,併產生一個單一訂單的n元語法功能: ngram :: Monad m => Int -> Conduit t m [t]
trigrams = ngram 3
countFreq :: (Ord t, Monad m) => Consumer [t] m (Map [t] Int)
目前我只能一個流的消費者連接到流源: t
考慮利用鏡頭,管道和單子,循環以下Haskell代碼: type Broadcast = Int
type BroadcastChan = TChan Broadcast
data SessionState = SessionState
{ _broadcastChan :: BroadcastChan
}
makeLenses ''SessionState
ty
我想了解這個概念,以便我能夠理解和使用庫,如machines。 我試圖按照Rúnar Bjarnason's talk on machines,但是信息太少,基本上只是一堆數據類型。我甚至無法理解什麼k是 newtype Machine k o = Step k o (Machine k o)
data Step k o r = Stop
| Yield o r
入門conduit,我注意到,在Data.Conduit.Util:從舊版本的管道 實用功能。這些應該被視爲棄用,因爲現在有更簡單的方法來處理它們的用例。該模塊僅用於向後兼容。 我特別關心的是zip :: Monad m => Source m a -> Source m b -> Source m (a, b)。這對我來說似乎非常有用 - 我可以獨立工作,生產a和生產b的方式,然後只需要zip將
我承認我並不真正瞭解導管很好,因爲我的Haskell知識有限。所以,如果有人能夠指導我如何完成這項任務,那麼我很感激:我想要輸出一個rawQuery動作並將其存儲在一個變量中,然後我可以在我的Hamlet文件中再次使用它。例如: let sql = "SELECT sum(value) as total, category FROM person GROUP BY category ORDER B