what would be a good word for this ? recreate ? recompute ? with_new ?
x.add(y);
x.plus(y);
People have been known to write the first one expecting 'x' to be updated. With the second, I think it's clearer that it's a value that needs to be assigned to a variable.For the operation in question here, I suggest 'with'. This is what I have used in my own functional collections libraries; I think it originated in SETL.
x.add(y); // x now equals x + y
x.adding(y); // returns x + y without mutating x