Search code examples
dependenciesparadigmsdeclarativeimperative

I want to call it side-effect programming, but there's gotta be a better term for this


What is the name of the following programming paradigm:

Code is executed based on a set of logical tests resolving to true (the clause). The clause is comprised of operators and operands. Each operand is a value/object.

Instead of evaluating the clause explicitly, as is done in imperative languages (e.g., normal flow control like if(){}), the clause is declared and bound to the resulting code. When the clause is satisfied, at any point in the future, the code will execute.

So, it's basically a dependency tree that re-evaluates whether the code should execute whenever a dependency changes state.

E.g.,

when(a && b && c < 3 && d.changes())
{
  runThisCode();
}

I'm looking for a more formal name and definition, and I haven't come up with anything after searching for it. It's somewhere between declarative and imperative, but I've never seen a language or paradigm that lets one do this.

Thanks, Sean


Solution

  • Maybe it is dataflow programming? Or reactive programming?