Tue Nov 20 08:53:21 EST 2018
build systems: from push to pull
From Conal's paper "Push-pull functional reactive programming"
I don't remember the contents, but sticking just to the push/pull
nomenclature, it is clear that when mixing imperative and functional,
there is going to be a place in the code where push and pull meet at a
The same happens in build systems:
- push: create products
- pull: download products
This is such a strong pattern that it is (almost?) guaranteed to be
explicit in code somewhere.
Maybe it is an implementation flaw? What you want is everything to be
demand-driven, but in practice you also want to have a "push" phase,
even if it is only to check constraints on the code. This phase is
development time, or compile time. The "pull" phase is run time: name
So bottom line: the functional view is pull-only (binding). The
imperative implementation of that is always push (set) and pull (get).
Or put differently: binding is done using statements.