and it's declarative, elegant and simple
but in contrast, you have a lot of control over time semantics
even though not listed on the wiki page, functional reative programming also has this structure
where you connect a graph of nodes that update eachother
it's a dataflow language: https://en.wikipedia.org/wiki/Dataflow_programming
in audio-synthesis, the language Puredata is popular
.. it's fantastic
.. is a direct parallel to the modular synth interface with CV-in/out
which when given a set of signals/events as input, and returns signals/events
what's also a weird coincidence, is that OCaml has a module system..
and I'm currently implementing a modular synth module with it
that's why I made Fry: https://github.com/rand00/fry
e.g. rhythms, envelopes, LFOs, events, user input
but there is so much you do with audio that is not audio-rate