Constructive Programming is about the restrictions you can impose on your code, in order to make it easier to understand, maintain, and evolve.

There are three starting criteria for constructive programs:

  • Referential Transparency
  • Totality
  • Termination