Why doesn't Return actually return a value in a Function? E.g.,
ClearAll[f]
f = Function[x, Return[x + 1]];
f[1] (* Return[2] *)
Contrast with a pattern-defined function:
ClearAll[f]
f[x_] := Return[x + 1]
f[1] (* 2 *)
After reading How does Return work? it seems that the answer turns on an odd behavioral difference in the presence of Set and SetDelayed, but (i) can one deduce this difference from the documentation, and (ii) is there a clear motivation for this difference?
Returncommand was introduced it should work as it currently does. It is definitely not a request for psychoanalysis of the developers. – Alan Sep 28 '16 at 17:55Return. – Daniel Lichtblau Sep 28 '16 at 19:09