On Thu, Apr 26, 2018 at 10:34:29PM +1200, Greg Ewing wrote:
Antoine Pitrou wrote:
Well, how do languages where assignment is an expression returning the assigned value make their REPLs work? I'm sure they don't inflict that on their users, so it's certainly a solvable problem.
I can't think of any such language that has a REPL offhand, but here's a possible solution:
[steve@ando ~]$ rhino Rhino 1.7 release 0.7.r2.3.el5_6 2011 05 04 js> x = (a = 99) + 1 100
Here's the standard Ruby REPL:
[steve@ando ~]$ irb irb(main):001:0> x = (a = 99) + 1 => 100
So both of these REPLs do print the result of the expression.
R, on the other hand, doesn't print the results of assignment expressions:
x <- (a <- 99) + 1 c(x, a)  100 99
Rhino, however, does suppress printing if you prefix the variable with "var" or "const".