日本語 · English

take — 先頭 n 点の打ち切り(COUNT 相当)

分類: ストライド(本体層 core・選択子と別族) / シグネチャ: take(n, from:) : Stream -> Stream / 名は確定(ADR-49)

意味

from: 以後(from: の点を含む)の入力点のうち、先頭 n 点だけを通す。stride が 「点で数えて間引く」なら、take は「点で数えて打ち切る」——RRULE の COUNT 相当を、除外や 振替と合成できる形で持つ(ADR-49)。

起点 from: は必須(ADR-31。stride 一族共通の規則)。出力は(入力・n・from:)だけの純関数で、 評価範囲はその外延の切り取り窓——範囲を狭めても数え直さない。

全 5 回の講座。休講が出ても合計 5 回になる(除外→数える、の合成順が補充を生む):

# eval: 2026-04-01..2026-08-01
@JP
lessons   = everyDay |> filter(d => weekday(d) == Tue)
cancelled = [2026-04-14, 2026-05-05] covering: 2026-04-01..2026-07-01
(lessons \ cancelled) |> take(5, from: 2026-04-01)
#=> 2026-04-07 2026-04-21 2026-04-28 2026-05-12 2026-05-19

RRULE の COUNT=5+EXDATE 2 件は除外の生成集合を数えるため 3 回に痩せる(rrule.js #456 の報告そのもの)。take には「除外前」という概念が式に存在しない——5/12・5/19 へ自然に 補充される。

落とし穴

関連

stride(間引く)・strideBy(幅で刻む)・nth(窓相対の 「第 N」=双対)・filter・ADR-31/38/49。