テーブルリテラル — 時点列のストリーム定数
分類: リテラル(premise 層が主戦場) / 形: [時点, …] covering: 範囲 labels: [ラベル, …]・空形 [] covering: 範囲(ADR-45) / covering:・labels: は確定(RC2・spec §5.4)
意味
時点リテラルのリストは時間ストリーム定数に昇格する(ADR-26)。周期規則から生成できない列—— 官報告示の春分・秋分、朔(新月)、二十四節気、年限定の特例日——をデータとして premise に持ち込む口。
- 列は昇順を要求(乱順・重複は静的エラー)。
covering:— 有効範囲。範囲外の評価は「事故の空」と区別された範囲外の出自として評価註釈に 流れる(I6)。省略時は列の端が範囲。端は両端含み——a..bのbはその市民日いっぱいまで (..2027-01-01は 1/1 を含む=排他端は 1/2 0時)、年略記2026..2026は年全体(ADR-37 判断 1/9。 「..2027-01-01 は 1/1 の直前まで」は誤読——発報層の実装還流で実測された段差)。- 空テーブル
[] covering: 範囲(ADR-45)——「点ゼロだが覆域は主張したい」の一次形。供給層の 「まだ何も無い」(初回 boot・年替わり)を合法ソースで書く器で、被覆サマリに残走路(即負)の運用 信号が立つ。空形は covering: 明示必須(省略既定「列の端」が空列で定義できない)・labels:は[]のみ合法・整列は空虚適合(全整列に適合し検査に通る・結合は相手を継承。spec §4.5)。 labels:— 時点列と同長の並行ラベル列。点→ラベルの射影を定義し、束縛名がそのまま射影名 になる(sekki(d)。ADR-30)。- 範囲リテラル
a..bは連続日への展開糖衣。 - テーブルを含む premise は
source:(出所)宣言必須寄り、版はasof:が担う(出所統治)。
例
日付範囲の糖衣と混ぜて書く:
# eval: 2026-01-01..2027-01-01
@JP
[2026-02-10..2026-02-13, 2026-03-01]
#=> 2026-02-10 2026-02-11 2026-02-12 2026-02-13 2026-03-01
#~> 範囲外 2026-01-01..2026-02-10((無名テーブル) covering 2026-02-10..2026-03-01)
#~> 範囲外 2026-03-01..2027-01-01((無名テーブル) covering 2026-02-10..2026-03-01)
ラベル付きテーブル——「立春」を名前で選ぶ(時点だけの表では序数でしか選べない。F33):
# eval: 2026-01-01..2026-03-01
@JP
sekki = [2026-01-05T17:23, 2026-01-20T10:45, 2026-02-04T05:02]
covering: 2026..2026
labels: [小寒, 大寒, 立春]
sekki |> filter(s => sekki(s) == 立春) |> snapTo(day)
#=> 2026-02-04
空テーブル——「まだ何も無い」を主張つきで書く(点ゼロ・覆域は観測日当日のみ。範囲外註釈と 被覆サマリの残走路(即負)が「データを入れよ」の運用信号になる。ADR-45):
# eval: 2026-07-01..2026-08-01
@JP
sekki = [] covering: 2026-07-13..2026-07-13
sekki
#~> 範囲外 2026-07-01..2026-07-13(sekki covering 2026-07-13..2026-07-13)
#~> 範囲外 2026-07-14..2026-08-01(sekki covering 2026-07-13..2026-07-13)
落とし穴
- 後置の順序は自由——
covering:・labels:はどちらが先でも同義(各一回・二重指定は静的エラー。 RC5 追補 9。旧実装はlabels:の後のcovering:を黙って捨てていた——覆域が既定〈列の端〉に 落ちる無検査受理=F104。発報層還流 第 5 便で検出・封止)。 - データで窓を刻む暦法(朔で切る太陰太陽暦)も同じ premise 型——暦法純粋(I8)が禁じるのは生成子の
カレンダー(営業日方針)依存であって、暦法のデータ依存ではない。純粋性の区別は出自
(
source:/asof:)で付ける(ADR-26)。 labels:は点(テーブル)だけでなく窓列(segmentBy)にも付く(ADR-39)—— 点のデータラベル(本ページ)・窓のデータラベル(segmentByのlabels:・同長は窓数=マーカー数で検査)・ 窓の計算ラベル(label:ラムダ=ADR-34)の三源が対称で、読みは一様に束縛名(d)。labels:は有限データへの 1 対 1。無限の律動にはcycle。源が違うだけで、読む側は どちらも束縛名射影で一様。- テーブル(点列)に値引数適用は無い——
sekki(立春)と書きたくなったら filter が正準 (sekki |> filter(s => sekki(s) == 立春)=台の点列が手元にあるから一行で足りる。ADR-42 判断 5)。 値引数が立つのは窓束縛(labels:つきsegmentBy・label:つき窓語)だけで、 そちらは「そのラベルの窓の期間の日々」が返る(窓インスタンス参照)。 - 供給の自動化(外部データの差し込み口)は
externalで書ける(ADR-46=実行時に 解決されるテーブルリテラル)。リテラルは「式に埋めるデータ」・external は「器で受けるデータ」の 使い分け(ADR-26 の先送りの解消)。 - 単一要素のテーブル=「ある時点」の器(
[2026-07-09T14:23] covering: ..)。「注入された 時点から 3 営業日後」のような次回計算はこの器+snapTo/roll/shiftで書ける(実行起点 相対のうちフィードバックだけがスコープ外——spec §7.7)。双対が空テーブル=「まだ無い」の器 (上の例)。 - 空テーブルの整列は行が入ると変わる(空虚適合→日付字句なら市民日グリッド・時刻付きなら
「なし」=字面ベース整列の帰結。ADR-45 の限界の明記)。時刻付きの列に育つ器を
&/\の合成に 使うなら、明示の再整列(snapTo)を挟むと初データ投入で検査が割れない。 - 空テーブルを開端で書く(
[] covering: ..)と「全時間で恒空」の完結主張になり残走路信号が 恒久に消える——boot 時の「まだ無い」は閉端(観測日当日など正直な最小主張)で書くのが作法。
関連
segmentBy(データで窓を切る)・snapTo・cycle・
出所統治(spec §3.8)・ADR-26/30。