News for hackers. Stuff that matters.
Re:John Carmack on Mutable Variables by manoDev on Friday October 31, 2025 @12:56PM (#45774145)
That's not mutation though.

The `assoc` on the second binding is returning a new object; you're just shadowing the previous binding name.

This is different than mutation, because if you were to introduce an intermediate binding here, or break this into two `let`s, you could be holding references to both objects {:a 1} and {:a 1 :b 2} at any time in a consistent way - including in a future/promise dereferenced later.

Re:John Carmack on Mutable Variables by potetm on Friday October 31, 2025 @10:05PM (#45778688)
regardless of the mechanism, you still run into the exact same problem John had.