Ejemplo
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 )
Todo lo que se necesita es un decodificador ( ConduitT ByteString am ()
), un codificador ( ConduitT ByteString am ()
) y una función para dividir la entrada en bloques ( ConduitT aam ()
). Teniendo en cuenta estos elementos, el resultado es un programa que puede ordenar entradas arbitrariamente grandes utilizando memoria externa.
Licencia: MIT
Autor: Luis Pedro Coelho (correo electrónico: [email protected]) (en twitter: @luispedrocoelho)