first — 各窓の先頭を選ぶ
分類: 選択子(本体層 core) / シグネチャ: first : Stream(windowed) -> Stream / 名は確定(spec §5.4)
意味
各窓の中で最初の要素を選ぶ。選択子は常に包含窓に相対的(窓相対・I4)——窓を消費して
「各窓 → 高々 1 点」を返す。既定の対象は最内窓、入れ子で曖昧なときは of: w で明示する(§4.3)。
要素の無い窓からは何も出ない——空は正当な値(ADR-15)であり、エラーではない。
例
各四半期の初日:
# eval: 2026-01-01..2027-01-01
@JP
everyDay |> within(quarter) |> first
#=> 2026-01-01 2026-04-01 2026-07-01 2026-10-01
of: で外側の窓を名指す:
# eval: 2026-01-01..2027-01-01
@JP
everyDay |> within(quarter) |> within(month) |> first(of: quarter)
#=> 2026-01-01 2026-04-01 2026-07-01 2026-10-01
落とし穴
- 窓なしの
firstは型エラー(I4)。 - 「営業日の中で最初」のように入力を先に間引いてから窓で束ねる(
filter |> within |> first)のと、 束ねてから選ぶのは結果が違う。第 N 営業日は前者。 - 原始的定義の公開境界語はこの選択子の再利用で書かれる(
monthStart = month |> first。新機構ゼロ。 spec §3.6)。