Similarly, for every chemical and nuclear reaction, when something is gained, something else is lost. For example, when two ions bond covalently by sharing electrons, a new molecule is gained, but the two ions are no longer what they previously were. So there is a correlation between gain of reaction products and loss of reactants.
But perhaps such analogies cannot be found everywhere in theoretical physics. Perhaps such a non-correlation would be a sign of a novel discovery, or a sign that a theory is physically invalid. It could be a signal of something for sure.
How do I reconcile "for every chemical and nuclear reaction, when something is gained, something else is lost" with catalysts increasing rate but not being consumed themselves?
In fact you can show there are an uncountably infinite number of broken symmetries in nature, so it is mathematically possible to concoct a parallel number of cases where nature does not have some "zero sum game" by Noether's Theorem.
Your statement is just cherry picking a few and then (uncountably infinitely) overgeneralizing.
Deleted Comment
It's a shame because it is just as effective as pissing in the wind.
Of course, by your reasoning this also means you yourself have designed a language.
I'll leave out repeating your colorful language if you haven't done any of these things.
"Consistent" is necessary but not sufficient for "good".
For anyone interested, this article explains the fundamentals very well, imo: https://go.dev/blog/slices-intro
You really don't see why people would point a definition that changes underneath you out as a bad definition? They're not arguing the documentation is wrong.
I don't really care if you want that. Everyone should know that that's just the way slices work. Nothing more nothing less.
I really don't give a damn about that, i just know how slices behave, because I learned the language. That's what you should do when you are programming with it (professionally)
bar, err := foo()
if err != nil {
return err
}
if err := foo2(); err != nil {
return err
}
The above (which declares a new value of err scoped to the second if statement) should compile right? What is it that he's complaining about?EDIT: OK, I think I understand; there's no easy way to have `bar` be function-scoped and `err` be if-scoped.
I mean, I'm with him on the interfaces. But the "append" thing just seems like ranting to me. In his example, `a` is a local variable; why would assigning a local variable be expected to change the value in the caller? Would you expect the following to work?
int func(a *MyStruct) {
a = &MyStruct{...}
}
If not why would you expect `a = apppend(a, ...)` to work?