Beispiel
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 )
Alles, was benötigt wird, ist ein Decoder ( ConduitT ByteString am ()
), ein Encoder ( ConduitT ByteString am ()
) und eine Funktion zum Aufteilen der Eingabe in Blöcke ( ConduitT aam ()
). Angesichts dieser Elemente ist das Ergebnis ein Programm, das beliebig große Eingaben mithilfe eines externen Speichers sortieren kann.
Lizenz: MIT
Autor: Luis Pedro Coelho (E-Mail: [email protected]) (auf Twitter: @luispedrocoelho)