Arc Forumnew | comments | leaders | submitlogin
1 point by reitzensteinm 4578 days ago | link | parent

Perhaps (++ containsnil) should result in 1 anyway? Is there any case where that would break anything?

2 points by simonb 4578 days ago | link

For one it breaks the expectation of a strongly typed language.

If something goes wrong and you want to fail as soon as possible not propagate the defect through the system.


1 point by reitzensteinm 4578 days ago | link

Oh, it definitely throws strong typing right out of the window.

The reason I suggested it is because it would seem that almost all of the time where you go to do an increment on a nil value, you're working with an uninitialized element (not necessarily in a hash map) and treating that as 0 (as you're doing an increment) would in a certain sense be reasonable behaviour.

But I guess you're right, in the case where nil does represent an error, it'll be two steps backwards when you go to debug the thing.


1 point by william42 4571 days ago | link

Or perhaps just set containsnil to 0 when you do that. (Knowing pg, this would probably work.)