home/ atoms/ strudel-appleft-appright-appboth-structure

appLeft/appRight/appBoth choose which pattern donates structure when a pattern of functions meets a pattern of values

When a pattern of functions is applied to a pattern of values (Applicative style), the two patterns’ timespans must be reconciled, and Strudel offers three strategies that differ in where the resulting whole timespan comes from. appBoth takes the intersection of the function-hap and value-hap timespans, so both patterns constrain structure. appLeft keeps the whole from the function/left/inner pattern, preserving its onsets and structure. appRight keeps the whole from the value/right/outer pattern. The named operators (|+, +|, |+|, etc.) are sugar over these three, so knowing which side donates structure explains why the same arithmetic yields different rhythms.

Examples

// note(“c3 e3”) |+ note(“0 7”) -> appLeft (structure from left) // note(“c3 e3”) +| note(“0 7”) -> appRight (structure from right) // note(“c3 e3”) |+| note(“0 7”) -> appBoth (intersection)

Assessment

For note("c3 e3 g3") |+ note("0 7"), predict the number of onsets per cycle and justify it, then rewrite with +| and explain the structural difference.

“the `whole` timespan is not the intersection, but the timespan from the function of patterns that this method is called on. In practice, this means that the pattern structure, including onsets, are preserved from the pattern of functions”
corpus · strudel-internals-pattern-as-function-of-time-functor-applic · chunk 1