@[email protected] to Programmer [email protected] • 11 hours agoWhat the F#whatthefsharp.commessage-square24fedilinkarrow-up176arrow-down12file-text
arrow-up174arrow-down1external-linkWhat the F#whatthefsharp.com@[email protected] to Programmer [email protected] • 11 hours agomessage-square24fedilinkfile-text
minus-square@[email protected]linkfedilink6•7 hours agoMutating function arguments is pretty wtf to begin with.
minus-square@FourPacketsOfPeanutslink3•edit-23 hours agotrue, and i can’t think of a legitimate case where it would have tripped me up. but if someone, a novice perhaps, wrote def some_func(foo, bar=[1, 2, 3]): bar.reverse() # for whatever reason print(bar) some_func('hello') # output [3,2,1] some_func('hello') # output [1,2,3] i think they would be within their rights to be surprised that calling this function twice has different results. that’s what i was surprised by; it feels like bar would be re initialised each time with a scope of the function but apparenty not
Mutating function arguments is pretty wtf to begin with.
true, and i can’t think of a legitimate case where it would have tripped me up. but if someone, a novice perhaps, wrote
def some_func(foo, bar=[1, 2, 3]): bar.reverse() # for whatever reason print(bar) some_func('hello') # output [3,2,1] some_func('hello') # output [1,2,3]
i think they would be within their rights to be surprised that calling this function twice has different results. that’s what i was surprised by; it feels like bar would be re initialised each time with a scope of the function but apparenty not