I remember in matlab, if you had some buggy line like the one that follows, it would give you a nice red squiggle and a note telling you that you probably messed up:
Matlab functions are always pass-by-value, which makes it easy to lint unused, overwritten bindings. Julia, on the other hand, passes arrays by reference, so you have to check for mutation all the way down the call chain.
K_n(r) = r .+ 1
function K_F(r)
r .*= 2
end
# Better to call this K_F!(r), but '!' is a syntax convention, not a guarantee
cur_reactor = ones(3)
cur_RHS = K_F(cur_reactor) # => cur_reactor = [2.0, 2.0, 2.0]
cur_RHS = K_n(cur_reactor) .^ 2 # => cur_RHS = [9.0, 9.0, 9.0]