泛函编程(36)-泛函Stream IO:IO数据源-IO Source & Sink

  • 时间:
  • 浏览:0
  • 来源:uu快3游戏_uu快3计划_苹果版

现在大伙来看看原先文件读取的ResourceR例子:

与Source同样,大伙还是用原先独立的类型Sink来代表数据接收端进行简单说明:

同样,原先只写的资源实这人 下:

这人IO类型大伙在前面的讨论里另原先练习过。

大伙先用原先独立的数据类型来代表数据源Source进行简单的示范说明,这人类型与Process类型如此任何关系:

这和Source trait及其这人 。注意和Process连接是反向的:由p指向Sink。

以下是原先向文件写入的Sink组件:

这人也和ResourceR这人 。还是与Process连接土方式是反方向的:由p到trans。

注意:无论读取完成或中途失败退出一定会由于 现场清理以避免资源漏出。也能 推断这人interpreter还是很安全的。

大伙再来看看原先Source特殊案例:

 上期大伙讨论了IO避免过程:Process[I,O]。大伙说Process就像电视信号盒子一样有输入端和输出端两头。Process之间也能 用原先Process的输出端与另原先Process的输入端连接起来形成一串具备多项数据避免功能的详细IO过程。但合成的IO过程两头输入端则还要接到原先数据源,而另外一端则将会会接到原先数据接收设备如文件、显示屏等。大伙在这篇简单地先介绍一下IO数据源Source和IO数据接收端Sink。

从以上trait也能 看过:Source的工作原理就说 把原先Process的输入黏中放Source的输出端。大伙也能 用这人 |> 把一串Process粘到Source的输出,如:Src.proc1.proc2.proc3。不过大伙得先把proc1,proc2,proc3定义成Source组件函数,将会Source是原先详细独立的类型。