Skip to content

Instantly share code, notes, and snippets.

@fogus
Last active October 7, 2022 20:10
Show Gist options
  • Save fogus/7b40d9f177d09994a18230afd954c63e to your computer and use it in GitHub Desktop.
Save fogus/7b40d9f177d09994a18230afd954c63e to your computer and use it in GitHub Desktop.

-*- mode: org -*-

Notes for Out of the Tarpit – the decomplector’s handbook

FUNCTIONAL RELATIONAL PROGRAMMING

Maybe a summary of this could be:

  • minimize mutable state
  • move the remaining into relations
  • manipulate relations with a declarative lang

There is in principle nothing to stop functional programs from pass- ing a single extra parameter into and out of every single function in the entire system. If this extra parameter were a collection (compound value) of some kind then it could be used to simulate an arbitrarily large set of mutable variables. In effect this approach recreates a single pool of global variables — hence, even though referential transparency is maintained, ease of reasoning is lost…

(every CLJ program)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment