ตัวอย่าง
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 ()
) ด้วยองค์ประกอบเหล่านี้ ผลลัพธ์ที่ได้คือโปรแกรมที่สามารถจัดเรียงอินพุตขนาดใหญ่ตามอำเภอใจโดยใช้หน่วยความจำภายนอก
ใบอนุญาต: MIT
ผู้เขียน: หลุยส์ เปโดร โคเอลโญ่ (อีเมล: [email protected]) (บนทวิตเตอร์: @luispedrocoelho)