Is there a feature in Wolfram Language that supports or enforces pure functions? WL has something that it calls "pure functions" in its documentation, but these are most emphatically not pure functions. For example, something like
z=0;
Map[{#, Print[z=z+#];z}&, Range[5]]
has side effects and modifies its environment.
Does Wolfram Language have a way of ensuring that a function is in fact pure?
Functions just to distinct them from "functions" defined by 'f[x_]:= ...`. However, the latter does not define a function, but a replacement rule. – Henrik Schumacher Feb 17 '20 at 16:36