My primary language (Erlang) does. I assume all functional programming languages do.
That's true. I suppose my next argument is that seeing matrix.append(row) on its own line signals strongly that this is not a functional language.
Is that true? I thought most functional programming languages did call-by-reference. I mean, if you have immutable data you can't tell the difference (outside of performance).
Under the hood it's probably by reference, but the semantics are by value. By reference indicates that the original value
can be changed in the called function.