return =

# Bob Myers (6 years ago)

To continue the "stupid idea of the day" series, I have often felt the need to indicate a return value other than as part of a return statement.

Perhaps this is my BASIC background--the dialect I used all those years ago allowed an assignment to the function name to pre-specify a return value, which would then be used whenever the function finally finished.

My initial suggestion is to use the return = syntax, which is a syntax error right now so it should not conflict with anything.

Trivial examples:

function double(a) {
  const b = return = [];
  for (elt of a) b.push(elt*2);
}
function bar() {
  const val = someCalculation();
  report(return = val);
}

Not to belabor the point, but of course there is no new functionality here; it's just a matter of conciseness. However, it could also perhaps be used to allow the use of arrow functions when you want to do something without returning its value but maintain the concise body form:

const a = () => doThing(return = a);

Bob

# Peter Jaszkowiak (6 years ago)

Wow that's fanatically disgusting. Please no.

# Isiah Meadows (6 years ago)

There is literally only one language I've seen that has anything like this, and it's Verilog, a hardware description language. (It's also of questionable utility, and it's restricted to just simulator-only constructs.) That's not an endorsement, more like the opposite of one.


Isiah Meadows contact at isiahmeadows.com, www.isiahmeadows.com

# Waldemar Horwat (6 years ago)

On 09/03/2018 11:32 AM, Isiah Meadows wrote:

There is literally only one language I've seen that has anything like this, and it's Verilog, a hardware description language. (It's also of questionable utility, and it's restricted to just simulator-only constructs.) That's not an endorsement, more like the opposite of one.

Pascal works that way too. You use an assignment statement to assign to the name of the function to set a function's return value.

 Waldemar