News for hackers. Stuff that matters.
Re:John Carmack on Mutable Variables by Zambyte on Friday October 31, 2025 @03:59PM (#45776074)
I can give a specific example.

    for (0..5) |i| {
        i = i + 1;
        std.debug.print("foo {}\n", .{i});
    }
In this loop in Zig, the reassignment to i fails, because i is a constant. However, i is a new constant bound to a different value each iteration.

To potentially make it clearer that this is not mutation of a constant between iterations, technically &i could change between iterations, and the program would still be correct. This is not true with a c-style for loop using explicit mutation.

Re:John Carmack on Mutable Variables by skeezyjefferson on Thursday November 06, 2025 @09:47AM (#45835834)
I argue in your example there are 6 constants, not 1 constant with 6 different values, though this could be semantics ie we could both be right in some way
Re:John Carmack on Mutable Variables by Zambyte on Monday November 10, 2025 @01:16PM (#45878912)
Exactly. As said higher in this comment chain:

> So, constant, but repeatedly redefined.

Re:John Carmack on Mutable Variables by skeezyjefferson on Tuesday November 11, 2025 @06:28AM (#45886173)
it was constant if it could have been redefined, by the basic definition of what constant means. so no, not constant, but constants