&gt; it can be explained (the wikipedia version) as [to quote wikipedia] &quot;methods should return a value only if they are referentially transparent and hence possess no side effects<p>This simply isn&#x27;t even accurate at all; that &quot;it can be explained&quot; as such is just plain false.