# Difference between revisions of "every"

From TidalCycles userbase

m |
|||

Line 18: | Line 18: | ||

Otherwise, the <syntaxhighlight lang="haskell" inline>every</syntaxhighlight> function will think it is being passed too many parameters. | Otherwise, the <syntaxhighlight lang="haskell" inline>every</syntaxhighlight> function will think it is being passed too many parameters. | ||

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

## Revision as of 22:22, 25 November 2018

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.