オリジナルグッズが当たるリリース記念キャンペーン実施中!詳細はこちら。
id:Windymeltのプロフィール
FArrayはマクロなどを活用することにより複雑な計算パイプラインを効率的に、なおかつ通常のコレクション同様に記述できる。
val xs = FArray.range(0, 100_000) xs.fuse .map(_ + 1) .filter(_ % 2 == 0) .collect { case x if x % 3 == 0 => x * 3 } .map(_ - 1) .zipWithIndex .map((x, i) => x + i) .takeWhile(_ < 1_000_000) .filter(_ % 5 != 0) .map(_ * 2) .sumJVMが認識できる高速な構造へと展開されるようになっており、作者によれば、既存のコレクションの22倍程度高速とのこと。ライブラリ自体はまだM1状態なので、プロダクションで使うのはおすすめしない。