home/ atoms/ strudel-split-queries

splitQueries breaks multi-cycle queries into per-cycle sub-queries

Many pattern calculations are only correct when every hap is guaranteed to start and end within a single cycle. splitQueries() wraps a pattern so that any query spanning multiple cycles is automatically split at cycle boundaries into per-cycle sub-queries, whose results are concatenated. This constrains all haps to happen within a cycle, which is why periodic patterns repeat correctly across arbitrary spans. Most built-in constructors apply it internally; you reach for it when writing a custom combinator whose per-cycle logic would otherwise misbehave on a two-cycle query.

Examples

// Without splitQueries a combinator that assumes single-cycle logic // can return wrong results when queried over cycles 0-2; // splitQueries() forces each cycle to be queried separately.

Assessment

Describe a custom combinator whose per-cycle assumption breaks on a query spanning two cycles, and how splitQueries fixes it.

“Returns a new pattern, with queries split at cycle boundaries. This makes some calculations easier to express, as all haps are then constrained to happen within a cycle.”
corpus · strudel-internals-pattern-as-function-of-time-functor-applic · chunk 1