notes-computer-programming-REST GET is referentially transparent

While reading an example from http://www.infoq.com/articles/tilkov-rest-doubts about GET being used to implement computation (the example was similar to using the resource http://example.com/sum?addend1=2&addend2=3 to refer to the result of the computation 2+3), I realized that the idea that the GET method is "safe" and "cacheable" is almost the same as referential transparency. "Safe" combined with "stateless" means no side-effects, and "cacheable" means it won't change over time (now, even RESTful GET is a little different from that, because it's okay for the contents of resources to change sometimes -- which is why I say "almost the same").

So, the reason that languages like Haskell are more inherently parallelizable, and the reason that the RESTful web is scalable are similar. In the following, remember than fetching a resource with GET is like calling a referentially transparent function:

Neat!