例子
import qualified Data.Conduit.Combinators as CC
import qualified Data.Conduit.Binary as CB
import Algorithms.OutSort ( isolateBySize )
import Algorithms.SortMain ( sortMain )
main :: IO ()
main = sortMain
CB. lines
CC. unlinesAscii
(isolateBySize ( const 1 ) 500000 )
所需要的只是一個解碼器 ( ConduitT ByteString am ()
)、一個編碼器 ( ConduitT ByteString am ()
) 和一個將輸入拆分為區塊的函數 ( ConduitT aam ()
)。給定這些元素,結果是一個可以使用外部記憶體對任意大輸入進行排序的程式。
許可證:麻省理工學院
作者:Luis Pedro Coelho(電子郵件:[email protected])(推特上:@luispedrocoelho)