We present the stream processing library that achieves the highest performance of existing OCaml streaming libraries, attaining the speed and memory efficiency of hand-written state machines. It supports finite and infinite streams with the familiar declarative interface, of any combination of map, filter, take(while), drop(while), zip, flatmap combinators and tupling. Experienced users may use the lower-level interface of stateful streams and implement accumulating maps, compression and windowing. The library is based on assured code generation (at present, of OCaml and C) and guarantees in all cases complete fusion.
翻译:我们展示了现有OCaml流体图书馆最高性能的流体处理图书馆,实现了手写国家机器的速度和记忆效率。它支持了以熟悉的宣言界面、地图、过滤器、摄取(同时)、跌落(同时)、拉链、平面组合器和调幅组合方式组合的有限和无限的流体。经验丰富的用户可以使用状态流的较低层界面,并使用累积的地图、压缩和窗口。图书馆基于有保障的代码生成(目前是OCaml和C)以及在所有情况下保证完全融合。