Skip to content

Sinksの紹介

ストリームの世界において、Sink<A, In, L, E, R>は重要な役割を果たします。これは、Streamによって生成された要素を消費するために設計された特化した関数のようなものです。Sinkの機能を以下に示します:

  • In要素を0個、1個、またはそれ以上の任意の数だけ消費できます。
  • Eのエラーが発生する可能性があります。
  • 最終的に型Aの値を生成します。
  • さらに、残りの要素を表す型Lの余りを返すことができます。

ストリームを処理するためにSinkを使用するには、単にそれをStream.run関数に渡します:

import { Stream, Sink, Effect } from "effect"
const stream = Stream.make(1, 2, 3) // 1, 2, 3の数字を持つストリームを定義
const sink = Sink.sum // 数字を合計するSinkを選択
const sum = Stream.run(stream, sink) // ストリームをSinkを介して実行
Effect.runPromise(sum).then(console.log)
/*
出力:
6
*/