# Difference between revisions of "every"

From TidalCycles userbase

m (Add reference to every') |
|||

Line 1: | Line 1: | ||

+ | <languages/> | ||

+ | <translate> | ||

{{DISPLAYTITLE:every}} | {{DISPLAYTITLE:every}} | ||

[[Type signature|Type]]: <syntaxhighlight lang="haskell" inline>every :: Pattern Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a</syntaxhighlight> | [[Type signature|Type]]: <syntaxhighlight lang="haskell" inline>every :: Pattern Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a</syntaxhighlight> | ||

Line 21: | Line 23: | ||

[[Category:Functions]] [[Category:Higher-order functions]] [[Category:Conditional Transformers]] | [[Category:Functions]] [[Category:Higher-order functions]] [[Category:Conditional Transformers]] | ||

+ | </translate> |

## Revision as of 23:26, 17 December 2019

Type: `every :: Pattern Int -> (Pattern a -> Pattern a) -> Pattern a -> Pattern a`

**every** is function, that allows you to apply another function conditionally. It takes three inputs, how often the function should be applied (e.g. `3`

to apply it every 3 cycles), the function to be applied, and the pattern you are applying it to.

For example to reverse a pattern every three cycles (and for the other two play it normally):

```
d1 $ every 3 rev $ n "0 1 [~ 2] 3" # sound "arpy"
```

Note that if the function you're applying requires additional parameters itself (such as `fast 2`

to make a pattern twice as fast), then you'll need to wrap it in parenthesis, like so:

```
d1 $ every 3 (fast 2) $ n "0 1 [~ 2] 3" # sound "arpy"
```

Otherwise, the `every`

function will think it is being passed too many parameters.

See also every'.