hsc3-lang-0.8: Help/Pattern/Step/pif.help.lhs
pif :: P Bool -> P a -> P a -> P a
Pattern-based conditional expression.
condition - pattern of selectors
iftrue - pattern selected from when condition is true
iffalse - pattern selected from when condition is false
> import Sound.SC3.Lang.Pattern.Step
A determinstic condition pattern, with deterministic
branches.
> let { c = pbool (pseq [1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0] 1)
> ; p = pseq [1,2,3,4,5] pinf
> ; q = pseq [11,12,13,14,15] pinf }
> in evalP (pif c p q)
A non-deterministic condition pattern, with
noisy branches.
> let { c = fmap (< 0.3) (pwhite 0 1 20)
> ; p = pwhite 0 9 pinf
> ; q = pwhite 100 109 pinf }
> in evalP (pif c p q)
Note that the noisy variant can be had for
less trouble as:
> let { c = fmap (< 0.3) (pwhite 0 1 20)
> ; p = pwhite 0 9 pinf
> ; q = pwhite 100 109 pinf
> ; if_f c' p' q' = if c' then p' else q' }
> in evalP (pzipWith3 if_f c p q)