言語仕様 · Playground

問題

毎月の最終金曜」の本体式を書け(前提は wkst: Mon の @JP のみ・データ不要)。

正答

monthEnd |> roll(Preceding, on: (everyDay |> filter(d => weekday(d) == Fri)))

判定基準: 評価範囲 2026-08-01..2026-12-01 で 2026-08-28, 2026-09-25, 2026-10-30, 2026-11-27(別解可——everyDay |> filter(d => weekday(d) == Fri) |> within(month) |> last も同一出力)。

解説

月末日を「金曜の列」を軸に前方(Preceding)へ寄せる——roll の on: は名前付きの軸だけでなく 匿名軸(インラインのストリーム式)を受ける(reference/roll.md・保証済み=F7)。月末日が 金曜ならそのまま(有効点は動かない)。within+last の別解は「月窓の中の金曜の最後」で同じ 集合になる。roll 形は「月末から遡る」・within 形は「月内で選ぶ」という読み下しの違いだけ。 impl 実走検証済み(2026-07-31・公開 HEAD 9e46dcf)。

検証

# eval: 2026-08-01..2026-12-01
premise JP {
  calendar-system: Gregorian
  tz: "Asia/Tokyo"
  wkst: Mon
}

@JP
monthEnd |> roll(Preceding, on: (everyDay |> filter(d => weekday(d) == Fri)))
2026-08-28
2026-09-25
2026-10-30
2026-11-27