日本語 · English

filter — 述語で間引く

分類: フィルタ(本体層 core) / シグネチャ: filter(on: P) / filter(x => 条件) : Stream -> Stream / 名は確定(spec §5.4)

意味

述語を満たす点だけを残す。二つの形を取る(wherefilter に統合済み。ADR-25):

営業日だけ残す(2026-01-01 は祝日、1/3・1/4 は週末):

# eval: 2026-01-01..2026-01-08
@JP
everyDay |> filter(on: bizDay)
#=> 2026-01-02 2026-01-05 2026-01-06 2026-01-07

月曜だけ残す(ラベル述語):

# eval: 2026-01-01..2026-01-20
@JP
everyDay |> filter(d => weekday(d) == Mon)
#=> 2026-01-05 2026-01-12 2026-01-19

射影と組んで「窓の座標で選ぶ」——毎月 11 日:

# eval: 2026-01-01..2026-04-01
@JP
everyDay |> filter(d => ordinalIn(day, month, d) == 11)
#=> 2026-01-11 2026-02-11 2026-03-11

落とし穴

関連

roll(間引かずに寄せる)・ordinalIncycle(ラベル述語の源)・I8・ADR-25/26。