日本語 · English

split — 親窓の可変分割(従属窓)

分類: 窓生成語(premise 層) / シグネチャ: split(g) by: u : Stream(windowed) -> Stream(partitioned) / 名は確定(spec §5.4)

意味

親窓を、g = y => [幅…] が返す幅リストで連続部分窓へ割る(トップダウン分割)。y は親窓の序数、 by: u は幅の単位(必須)。幅の総和が親窓に一致することは I5 で検査できる。

span(ボトムアップ)が基本の括りを作るのに対し、split従属窓を作る——親の変化に自動追従 させたい窓に使う。Gregorian の quarter が代表:

quarter = year split (_ => [3, 3, 3, 3]) by: month

会計暦(withyear を組み替え)の下では、この継承定義が新しい year に自動追従して 会計四半期になる(機構 A。with)。

年を前期・後期に割る:

# eval: 2026-01-01..2027-01-01
premise H = Gregorian with { half = year split (_ => [6, 6]) by: month }
premise JPH { calendar-system: H; tz: "Asia/Tokyo"; wkst: Mon }
@JPH
everyDay |> within(half) |> first
#=> 2026-01-01 2026-07-01

四半期の初日(標準の quarter):

# eval: 2026-01-01..2027-01-01
@JP
everyDay |> within(quarter) |> first
#=> 2026-01-01 2026-04-01 2026-07-01 2026-10-01

label:(ADR-34)

split … by: u label: (p => 式) で各部分窓にラベルを貼れる(p=窓の先頭点・射影時の遅延評価。 詳細は span の同節と ADR-34)。

落とし穴

関連

spangridwith(自動追従の実例)・I5。