Clojure: Transducers(トランスデューサー)

https://clojure.org/reference/transducers

記事

  • Transducerはデータのソースやシンクから切り離された、合成・再利用可能な変換関数です
  • 中間コレクションを排除し、データパイプラインのメモリ使用量を削減します
  • lazy seq(遅延シーケンス)、channel(非同期チャネル)、あらゆる reducible なコンテキストで動作します

ディスカッション

  • Injest ライブラリが、transducerの合成を通常のスレッディングマクロのように書けると好評を得ています
  • パフォーマンス向上は中間コレクションのアロケーションを排除することによって得られます
  • 代替手段として Haskell、Java の Gatherers API、Scheme の SRFI-171 も挙げられています

HNで議論を見る


原文(英語): Clojure: Transducers


Type Link
Added Apr 21, 2026
Modified Apr 21, 2026