Exemplo
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 )
Tudo o que é necessário é um decodificador ( ConduitT ByteString am ()
), um codificador ( ConduitT ByteString am ()
) e uma função para dividir a entrada em blocos ( ConduitT aam ()
). Dados esses elementos, o resultado é um programa que pode classificar entradas arbitrariamente grandes usando memória externa.
Licença: MIT
Autor: Luis Pedro Coelho (e-mail: [email protected]) (no twitter: @luispedrocoelho)