冲水这个动作就是hFlush这个名字的含意。
二.Data.ByteString
既然从系统读取文件需要考虑性能采用Buffer,那读入内存之后呢?又该如何存储,如何操作?...List的大多数方法在ByteString都有同名的对应实现,例如:
head, tail, init, null, length, map, reverse, foldl, foldr, concat...,用于在左侧插入元素,同样是惰性的(即便第一个chunk足够容纳新元素,也插入一个chunk),而cons'是其严格版本,会优先填充第一个chunk的剩余空间,区别类似于:
> Prelude.foldr...B.cons' B.empty [50..60]
Chunk "23456789:;<" Empty
P.S.旧版本GHC会show出类似于上面的差异,0.10.0.1之后的Show实现改成了类似于字符串字面量的形式...数值、字符、布尔类型等都可以有随机值,种子则需要通过特殊的mkStdGen :: Int -> StdGen函数生成,例如:
> random (mkStdGen 7) :: (Int, StdGen)