Comment Comment by tromp This sounds quite similar to pure functional languages like Haskell, where a function call cannot have any side effect.But those go further in that they don't even have any mutable data. Instead of var foo = { a: 1 }; var bar = foo; // make a copy of foo set bar.a = 2; // modify bar (makes a copy) Haskell has foo = Baz { a = 1 } bar = foo { a = 2 } // make a modified copy of foo parent tromp 9 months ago
But those go further in that they don't even have any mutable data. Instead of
Haskell has