日本語 · English(未訳)

ADR-24: 窓を式中で書く記法を設ける。選択子の「第 N」は窓の起点に依存する

判断: 窓(ADR-06/08 で第一級と決めたもの)を本体式の中に書くための演算子を設ける(仮称 within(...))。 また、選択子(nthlast 等)の「第 N」「最後」は、包含窓の起点定義に相対的であり、窓が premise(WKST 等)に 相対的である以上、選択子は窓を経由して premise にも相対的である(二段依存)。

背景: 窓を第一級と決めた(ADR-06/08)が、それを式中でどう書くかは未設計だった。代表例を core に展開する 過程で、窓を明示する演算子が必要と判明した(within(month)within(week))。生成子 everyDay と選択子 last も同時に要ると分かった。

「週が土曜始まりの組織が存在する」という実例が、選択子の二段依存を炙り出した。nextWeekday(Fri) の「その週の 金曜」は WKST(週の開始)次第で「今週か翌週か」が反転する(土曜始まりでは金曜が週の最終日になる)。これは 「月末の 2 営業日前」が二意だった問題の週版。WKST は月曜/日曜の二択ではなく、土曜始まりも実在するため、 既定に頼らず premise として扱う必要がある。

より一般に、選択子 nth(2)(第 2 日)が「どの曜日を第 1 とするか」は窓の起点(WKST)で変わる。選択子は窓相対 (I4)と決めたが、窓自身が WKST 相対なので、選択子は窓を経由して WKST にも相対的になる。この二段依存を明記 しないと、土曜始まりで第 2 営業日を数えたとき事故る。

却下した案: WKST を月曜固定または日曜固定とする案。土曜始まり等の実在例を表現できず却下。WKST は premise。

帰結:

改訂(2026-07-07・ADR-26/27 に伴う): 本文が予見した「その週の金曜は WKST 次第で今週か翌週かが反転する」 危険は、nextWeekday の展開先を within(week) から前方 rollroll(Following, on: 金曜ラベル日の列))に 改めることで解消した(40-examples F31・spec §4.8)。nextWeekday は WKST 非依存になり、「第 N 週の金曜」の ような窓序数依存の式だけが WKST を要する。選択子の二段依存(選択子 → 窓 → WKST)という本 ADR の本則は不変。