Referential Transparency, Functional Programming and Paper Writing

It may come as no surprise to hear that I'm a big fan of functional programming, and that I enjoy applying the paradigm whenever I am able. I had an interesting idea the other day concerning one of the key principles of the functional programming paradigm, referential transparency.

Referential Transparency: A function in a program is referentially transparent (has no side effects) if it can be replaced with its evaluation without changing the effect of the program.

What if referential transparency can be applied to more than just programming? Specifically, what if it could be applied to research paper writing? I think that there is some practical application to this thought process. Although the idea of research papers is not just to convey results but to also provide enough information to support one's claim. The idea of making papers referentially transparent is a convenient way to make sure that your writing is concise and to the point. In fact, many of the problems that are encountered in both paper writing and dissemination also occur in programming. Mainly, in this case, I consider the following:

  • Make it clear and to the point.
  • Provide enough context so that the statements make sense.
  • Stay in scope.

If we break up the statements that are to be conveyed and express them as functions then all of the supporting statements should be their own atomic functions as well. Referential transparency comes into place when you consider that the information being conveyed by the greater function should be able to stand on its own. That is, if we assume that the persons reading the greater statement already knows the supporting information then effect of ignoring the supporting statements should be the same as if they were read.

Note: Now if only I can apply this sort of thinking to my blog posts as well.